我想在我的数组中输入值,在0到101之间,尝试输入零或101将返回错误,但是从1-100中输入任何内容将允许我输入第二个数字。
但是当我写代码添加第二个数字时,我陷入困境,循环继续进入1,我无法弄清楚我的错误。任何帮助将是apreciated
#include <stdio.h>
#include <stdlib.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
char letter;
int main()
{
int i;
int grades[12] ;
for ( i = 0; i < 12; i++)
do{//loops the following peice of code if values over 100 or less than 0 are entered
printf("Please Enter Grade 1:\n");
scanf("%f", & grades[i]);
if (grades > 100 || grades < 0)
printf("Invalid Entry please enter another between 0 and 100:\n");
}while(grades < 100 || grades > 0);
}
答案 0 :(得分:3)
这里的错误是你将整个数组与一个值进行比较。你想要的是一个元素,而且你需要测试你是否超出了可接受的范围:
while(grades[i] > 100 || grades[i] < 0);
正如Jonathan在下面指出的那样,代码中的逻辑会测试它内部的逻辑,这意味着只有有效的答案会永远循环,与您想要的相反。