#include <stdio.h>
int main()
{
int a, b, c, m;
printf("请输入三位数:");
scanf("%d", &m);
a = m % 10;
b = m / 10 % 10;
c = m / 100;
printf("倒序为:%d", a * 100 + b * 10 + c);
return 0;
}
【以下回答由 GPT 生成】
问题的原因在于您使用的是一个无限循环。当您输入一个三位数时,程序进入循环,并在每次迭代中不断将 num
除以 10,直到 num
变为 0。然而,在执行循环结束后,您需要重新输入一个新的数字,并在下一次循环中获取新的倒序结果。
为了修复这个问题,您可以在程序中添加一个循环,以便多次获取用户输入并计算倒序结果。以下是修复后的代码:
#include <stdio.h>
int main() {
int num, rev;
while (1) {
printf("请输入一个三位数:");
scanf("%d", &num);
// 检查输入是否为三位数
if (num >= 100 && num <= 999) {
rev = 0;
// 倒序排列
while (num != 0) {
rev = rev * 10 + num % 10;
num /= 10;
}
printf("倒序后的结果是:%d\n", rev);
} else {
printf("输入错误,请重新输入一个三位数。\n");
}
}
return 0;
}
修复后的代码中添加了一个无限循环 (while (1)
),在每次循环中,程序会提示用户输入一个三位数,并通过 if
语句检查输入是否为合法的三位数。如果输入正确,则计算倒序结果并输出。否则,程序会输出错误提示信息并要求用户重新输入。
这样,您就可以多次输入不同的三位数,并获取相应的倒序结果。
【相关推荐】