This question already has answers here:
Closed 5 years ago.
Check if input is integer type in C
(13个答案)
我正在为我的一个班级编写代码,结果遇到了麻烦。我需要用户输入一个数字,作为for循环重复的次数。我要求这个数字的第一个循环是while循环。我需要确保输入的值是一个数字,而不是一个字母或特殊字符。
我不知道如何确定它不是一个字母或特殊字符。
下一个问题是确保for循环只运行指定的次数,即第一个循环中提供的次数。
这就是我到目前为止写的。
#include <stdio.h>

int main()

{

int num_of_scores, n;
char enter;
float score=-1, total=0, average;

do
{
    printf("\n\nEnter the number of quiz scores between 1 and 13: ");
    scanf ("%d, %c", &num_of_scores, &enter);
}
while(num_of_scores<1 || num_of_scores>13/* && enter == '\n'*/);

printf("\nStill Going!");

for(n=0; n<num_of_scores; n++)
{
    printf("\nEnter score %i: ", n+1);
    scanf ("%f", &score);
    while(score>=0 || score<=100)
    {
        total = total + score;
        score = -1;
        break;
    }
}


average = total / num_of_scores;

printf("\nThe average score is %.0f.\n\n", average);
return 0;

}
所以我对代码进行了一些编辑。第一个while循环中有一个部分在我删除的注释中,因为它使程序在循环之后结束。printf(“仍在运行”)只是一个测试,以确保程序能够走到这一步。还有什么线索吗?我仍然不知道如何检查以确保没有输入号码。我想添加&&enter='\n'就可以了,但是如果它挂起程序就不行了。你提出的许多例子都很好,但我觉得有点混乱。谢谢!

最佳答案

我会查一下这个问题的答案。。。

关于c - 如何确保输入的值是数字? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21764985/

10-12 16:11