新的C,循环问题

时间:2017-11-16 22:04:05

标签: c

我想在我的数组中输入值,在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);
}

1 个答案:

答案 0 :(得分:3)

这里的错误是你将整个数组与一个值进行比较。你想要的是一个元素,而且你需要测试你是否超出了可接受的范围:

while(grades[i] > 100 || grades[i] < 0);

正如Jonathan在下面指出的那样,代码中的逻辑会测试它内部的逻辑,这意味着只有有效的答案会永远循环,与您想要的相反。