如何使用单个while循环来限制负整数到代码的输入。我以前曾尝试用两个while循环为两个scanf()并且工作很酷。但我无法想象我们如何将它们合并成一个while循环。我已经删除了原来使用的两个循环。我完全不熟悉这一点,我需要一些想法。如何验证,以便用户只能输入正整数
#include <stdio.h>
int main()
{
int num, uplimit, a;
printf("Which multiplication table do you want? ");
scanf("%d",&num);
printf("Please enter the upper limit: ");
scanf("%d",&uplimit);
printf("\nMultiplication Table for %d\n", num);
printf("===========================\n\n");
for(a=1;a<=uplimit;++a)
{
printf("%d X %d = %d %s\n", a, num, num*a, (num*a % 2 == 0) ? "*" : " ");
}
{
printf("\n* indicates even multiple of %d", num);
}
return 0;
}
的可能的复制[检查是否输入在C整数类型](http://stackoverflow.com/questions/ 4072190 /检查是否输入-是整数型在-C)。 – BlackDwarf
如果您阅读例如[这个'scanf'(和家庭)参考](http://en.cppreference.com/w/c/io/fscanf),你将看到一个格式代码表。我相信你可以找到一种适合阅读非负整数的格式。 –
@JoachimPileborg:你的意思是%u和%x?他们接受负面的投入。例如,输入-1会给出'UINT_MAX',而不会显示错误。 – mafso