#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;
}
这是我正在处理的一些代码。它应该存储 6 个整数,每个整数都在 0 到 31 的范围内,因此每个整数都有 5 位的空间。由于某种原因,它不起作用。当我在循环中对 vals 进行赋值时,它似乎只是将读入的当前值存储到 vals 中。你知道可能出了什么问题吗?