This question already has answers here:
Closed 5 years ago.
Check if input is integer type in C
(13个答案)
我正在为我的一个班级编写代码,结果遇到了麻烦。我需要用户输入一个数字,作为for循环重复的次数。我要求这个数字的第一个循环是while循环。我需要确保输入的值是一个数字,而不是一个字母或特殊字符。
我不知道如何确定它不是一个字母或特殊字符。
下一个问题是确保for循环只运行指定的次数,即第一个循环中提供的次数。
这就是我到目前为止写的。
}
所以我对代码进行了一些编辑。第一个while循环中有一个部分在我删除的注释中,因为它使程序在循环之后结束。printf(“仍在运行”)只是一个测试,以确保程序能够走到这一步。还有什么线索吗?我仍然不知道如何检查以确保没有输入号码。我想添加&&enter='\n'就可以了,但是如果它挂起程序就不行了。你提出的许多例子都很好,但我觉得有点混乱。谢谢!
(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