我正在尝试编写一个 C 程序,它可以接受 1 到 100 之间的 10 个数字。如果输入超出范围的值,则应显示错误消息。
我设法编写了以下代码来检查数字是否在 1 到 100 之间
#include <stdio.h>
int main() {
int num1, num2, num3, num4, num5, num6, num7, num8, num9, num10;
printf("\nEnter the first number : ");
scanf("%d", & num1);
printf("\nEnter the second number : ");
scanf("%d", & num2);
printf("\nEnter the third number : ");
scanf("%d", & num3);
printf("\nEnter the fourth number : ");
scanf("%d", & num4);
printf("\nEnter the fifth number : ");
scanf("%d", & num5);
printf("\nEnter the sixth number : ");
scanf("%d", & num6);
printf("\nEnter the seventh number : ");
scanf("%d", & num7);
printf("\nEnter the eighth number : ");
scanf("%d", & num8);
printf("\nEnter the nineth number : ");
scanf("%d", & num9);
printf("\nEnter the tenth number : ");
scanf("%d", & num10);
if ((num1 <= 1 && num2 <= 1 && num3 <= 1 && num4 <= 1 && num5 <= 1 && num6 <= 1 && num7 <= 1 && num8 <= 1 && num9 <= 1 && num10 <= 1) && (num1 >= 100 && num2 >= 100 && num3 >= 100 && num4 >= 100 && num5 >= 100 && num6 >= 100 && num7 >= 100 && num8 >= 100 && num9 >= 100 && num10 >= 100)) {
printf("good");
printf("Numbers are good");
} else {
printf("All numbers must be between 1 to 100");
}
return (0);
}
当我运行代码时,我得到此输出“所有数字必须在 1 到 100 之间”,即使我输入的数字在 1-100 范围之间。我希望输出是“数字很好”。请帮忙。
最佳答案
你的测试是错误的,你想要(n >= 1) && (n <= 100)
不是(n <= 1) && (n >= 100)
还可以使用循环来管理所有输入,而不是重复代码,想象一下如果您必须输入 1000 个数字。
建议:
#include <stdio.h>
#define N 10
int main() {
int isAllOk = 1;
int nums[N]; /* to save the values to have them available later even not used in your question */
for (int i = 0; i != N; ++i) {
printf("\nEnter number %d : ", i + 1);
if (scanf("%d", & nums[i]) != 1) {
fprintf(stderr, "invalid input\n");
return -1;
}
isAllOk &= ((nums[i] >= 1) && (nums[i] <= 100));
}
puts((isAllOk) ? "Numbers are good" : "All numbers must be between 1 to 100");
return (0);
}
编译与执行:
pi@raspberrypi:/tmp $ gcc -pedantic -Wall -Wextra l.c
pi@raspberrypi:/tmp $ ./a.out
Enter number 1 : 1
Enter number 2 : 2
Enter number 3 : 44
Enter number 4 : 3
Enter number 5 : 3
Enter number 6 : 3
Enter number 7 : 3
Enter number 8 : 3
Enter number 9 : 3
Enter number 10 : 3
Numbers are good
pi@raspberrypi:/tmp $ ./a.out
Enter number 1 : 111111111
Enter number 2 : 23
Enter number 3 : 3
Enter number 4 : 3
Enter number 5 : 3
Enter number 6 : 3
Enter number 7 : 3
Enter number 8 : 3
Enter number 9 : 3
Enter number 10 : 3
All numbers must be between 1 to 100
请注意,当数字不在 1 到 100 之间时,也可以立即停止,但这似乎与您的请求不兼容。
关于c - 检查 1 到 100 之间的数字时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55356559/