各位! 我希望有人能帮我用C语言弄清楚一些东西。 这是我在 IT 方面的第一个认真的作业,我没有经验,而且我正在学习电子学习,所以老师的帮助不是很可用。
我需要用 C 语言开发控制台应用程序。用户需要输入10个整数,如果插入的数字不是整数,需要输出错误并重新输入新的数字,直到10个整数都被插入。
万一我说这 10 个数字不能为 0(我这样做是为了确保我的 if-else 语句有效),但当我希望检查每个输入数字时,一切都不起作用是否为整数。
我怎样才能做对。
请帮忙
到目前为止我的代码是这样的:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i;
float f;
int numbers[10];
for (i = 0; i < 10; i++)
{
scanf ("%d", &numbers[i]);
if (numbers[i] != 0)
{
scanf ("*%d", &numbers[i]);
}
else
{
printf ("\nError!Entered number is't integer \n");
printf ("\nPlease insert number again \n");
scanf("%*d", &numbers[i]);
}
}
}
最佳答案
#include <stdio.h>
int main(void) {
int i = 0;
int val;
char ch;
int numbers[10];
while(i < 10) {
val = scanf("%d", numbers + i); // read the integer into a[i]
if(val != 1) {
while((ch = getchar()) != '\n') // discard the invalid input
; // the null statement
printf("Error! Entered number is not an integer.\n");
printf("Please enter an integer again.\n");
val = scanf("%d", numbers + i);
continue;
}
++i;
}
// process the numbers array
return 0;
}
我又写了这一行
val = scanf("%d", numbers + i);
现在它可以按我的需要工作。太好了 - 非常感谢
关于c - 从数组中输入几个数字,每个数字检查是否为整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22539966/