【发布时间】:2015-03-04 08:21:46
【问题描述】:
我正在尝试制作一个用户应该输入字符“a”的简单程序。它应该循环直到输入'a'。如果没有正常工作的输入,我会打印一份声明。如果输入了不正确的字母或数字,还有另一个语句,但问题是这会导致程序循环不止一次,并且会多次打印语句。任何解决此问题的帮助表示赞赏。
#include <stdio.h>
int main()
{
char input;
int i, len,num;
len = 1;
do
{
puts("Please enter alphabet 'a': ");
scanf("%c", &input);
for(i=0; i<len; i++)
{
if(isalpha(input)==0)
{
printf("Please input something.\n");
continue;
}
if(input == 'A' || input == 'a')
{
printf("Congratulations! You successfully input letter 'a'.");
return(0);
}
else
{
printf("That's not letter 'a'.");
}
}
}
while(1);
}
【问题讨论】:
-
for循环的意义何在?此外,在假设变量包含有效值之前,您应该检查scanf()的返回值。 -
for循环肯定会循环一次。去掉它。这是不必要的。另外,当您不输入字母时,您将有一个无限循环。并使用while(1)而不是do...while(1);。你也忘了包括ctype.h。此外,在main末尾使用return(0);更好。您的代码中也有一个未使用的变量num。 -
嗨。我尝试摆脱 for 循环并运行程序,但它仍然没有解决我遇到的问题。
标签: c while-loop