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 ....
我如何修改此代码
我想为我提供您的聪明知识:)
使用Google翻译
输入小于0的数字时程序终止 输入字符时重新启动循环语句
答案 0 :(得分:3)
您根本不处理负数。
仅当else if
等于number
或大于0
时,下面的9
块才会命中,因为您的第一个if
处理{{1} }到1
。
9
因此将其更改为
else if (number >= 0) {
^^-> greater than or equal to 0.
输入字符时重新启动循环语句。
输入else if (number <= 0) {
^^->less than or equal to 0.
后,您可以使用scanf
的返回值重新开始循环
char