int main(void){
int number;
while(1) {
scanf("%d", &number);
printf("%d", number);
if (number >= 1 && number <= 9) {
for (int j = 1; j <= 9; j++) {
printf("%d X %d = %d \n", number, j, number*j);
}
break;
}
else if (number >= 0) {
break;
}
else {
while (getchar() != '\n');
continue;
}
}
return 0;
}
抱歉..我的英语不是很好:(
这是我的九九乘法表 如果我输入负数。同时>中断 但是这段代码输入负数> else....
如何修改此代码
我想要你的聪明知识:)
使用谷歌翻译
输入小于0的数字时程序终止 输入字符时重新启动循环语句
最佳答案
您根本不处理负数。
仅当 number
等于 0
或大于 9
时,以下 else if
block 才会命中,因为您的第一个 if
处理从 1
到 9
的数字。
else if (number >= 0) {
^^-> greater than or equal to 0.
所以将其更改为
else if (number <= 0) {
^^->less than or equal to 0.
Restart loop statement when entering characters.
您可以使用 scanf
的返回值在输入 char
时重新启动循环
while(1) {
int ret = scanf("%d", &number);
if (ret != 1)
{
printf("enter valid number\n");
continue;
}
printf("number:%d", number);
if (number >= 1 && number <= 9) {
for (int j = 1; j <= 9; j++) {
printf("%d X %d = %d \n", number, j, number*j);
}
break;
}
else if (number <= 0) {
break;
}
}
关于c - 如何用C语言制作乘法表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52680672/