C语言 编写一个程序, 对于任意输入的两个整数, 求商和余数
·
这个挺简单的, 没啥好讲, 直接展示代码
#include <stdio.h>
int main() {
int a, b;
printf("请输入第一个整数: ");
scanf("%d", &a);
printf("请输入第二个整数: ");
scanf("%d", &b);
// 计算商和余数
printf("商为: %d\n", a / b);
printf("余数为: %d\n", a % b);
return 0;
}
虽然简单, 但我依然要挑刺, 我们不难发现, 程序中有一个很致命的bug, 那就是我们在给b赋值的时候, 可以给它赋值一个0, 但众所周知, 0不能作为被除数, 不然就会报错, 那么该怎么解决这个问题的, 我的解决方式是这样的
#include <stdio.h>
int main() {
int dividend, divisor;
int quotient, remainder;
printf("请输入被除数: ");
scanf("%d", ÷nd);
do {
printf("请输入除数 (不能为零): ");
scanf("%d", &divisor);
if (divisor == 0) {
printf("除数不能为零,请重新输入。\n");
}
} while (divisor == 0);
// 计算商和余数
quotient = dividend / divisor;
remainder = dividend % divisor;
printf("商为: %d\n", quotient);
printf("余数为: %d\n", remainder);
return 0;
}
我的解决方式是这样的, 首先先将除数和被除数分开, 之后使用了do-while
循环,以确保在用户输入除数为0时要求重新输入。如果用户输入的除数为0,则打印出错误消息并再次提示输入除数。
这样,程序将继续循环,直到用户输入一个非零的除数。然后,计算两个整数的商和余数,并输出结果。
更多推荐
已为社区贡献2条内容
所有评论(0)