我要确保用户输入一个数字一个有效的数字.如果persons没有输入数字,If语句会起作用吗?这是如何工作的?



这是我们大学小组作业的一小部分。我们必须展示我们的代码,并解释代码的每个部分是如何工作的。

我们想要确保用户输入一个整数,如果他们没有输入一个有效的数字,则提示用户重新输入。

我们设法想出了一个解决方案,但我不明白为什么它有效。

在试图想出一个解决方案时,我们考虑使用

numberchecker==input[i]
if(!(numberchecker==input[i]))

然而,它与我们想要的相反,所以我删除了' !"现在它不知怎么地起作用了?"为什么会发生这种情况?if语句不应该只在输入整数时才触发吗?

#include <stdio.h>
int main()
{
int i,x,input[128],answer,numberchecker;  
printf("Input number of numbers: ");
scanf("%d",&x);   
for(i=0;i<x;i++)
{
printf("Input number %d:",i+1);
scanf("%d",&input[i]);      
numberchecker==input[i];
if(numberchecker==input[i])
{
do
{
printf("nInvalid number! Please try to input a valid numbernnInput number %d:",i+1);
scanf("%d",&input[i]);
numberchecker==input[i];
}
while(numberchecker==input[i]);
}
}
}

然而,它与我们想要的相反,所以我删除了' !"现在它不知怎么地起作用了?">

它不是可靠的工作,而是依赖于未定义的行为


为什么会发生这种情况?

这是未定义行为


if语句不应该只在输入整数时触发吗?

是未定义行为


使用fgets()读取用户输入的strtol()根据如何解析它。

最新更新