我很难确保数组只填充 0-7 范围内的数字。 当我用超出范围的数字填充数组时,例如。 0 0 0 8 显示错误消息。但是,如果用户输入一个字母,我的程序就会崩溃。
int array[4] = {0};
scanf("%d %d %d %d", &array[0], &array[1], &array[2], &array[3]);
for(int i=0; i<4; i++)
{
if(isdigit(array[i]) && array[i]<8 && array[i]>=0)
{
// continue program
}
else
{
printf("Invalid entry.");
break;
}
}
如有任何帮助,我们将不胜感激。
最佳答案
少一个测试(比黑客的解决方案):
if (array[i] & ~7) {
invalid_input();
} else {
/* valid input */
}
如果您仍然有问题,那么问题可能出在其他地方?..
关于C:检查一个数组只包含 0-7 范围内的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21317371/