#include <stdio.h>
#define NUMVALS 6
#define SIZE 5
#define MAX 31
int main () {
int vals = 0;
short curVal, idx = 0;
for(; idx < NUMVALS; ++idx) {
scanf("%d", &curVal);
vals = (vals << SIZE) | curVal;
}
printf("%d", vals | curVal);
return 0;
}
これは私が取り組んでいるコードです。それぞれ 0 から 31 の範囲の 6 つの整数を格納することになっているため、それぞれに 5 ビットのスペースが割り当てられます。何らかの理由で機能していません。ループ内で vals に代入すると、読み込まれた現在の値のみが vals に格納されているようです。何が問題なのか分かりますか?