下面是一个用C语言编写的程序,其中实现了上述两个功能:
#include <stdio.h>
int main() {
int n, sum = 0, reverse = 0, digit;
// 输入一个三位整数n
printf("请输入一个三位整数: ");
scanf("%d", &n);
// 判断输入是否为三位数
if (n < 100 || n > 999) {
printf("输入的不是三位整数,请重新输入。\n");
return 1; // 非法输入时退出程序
}
// (1)求n的三位数码之和
for (int temp = n; temp > 0; temp /= 10) {
digit = temp % 10; // 获取当前最低位的数字
sum += digit; // 将其加到sum中
}
printf("数字%d的数码之和为: %d\n", n, sum);
// (2)把n逆序输出
for (int temp = n; temp > 0; temp /= 10) {
digit = temp % 10; // 获取当前最低位的数字
reverse = reverse * 10 + digit; // 将数字逆序
}
printf("数字%d逆序输出为: %d\n", n, reverse);
return 0;
}
在这段代码中,我们首先让用户输入一个三位整数n
,然后通过循环提取n
的每一位来计算数码之和并逆序输出这个数字。在第一个循环中,我们每次通过除以10将n
的最低位数码提取出来,并累加到sum
变量中。在第二个循环中,我们使用类似的方法,但是在提取每一位数码时,我们将其添加到reverse
变量中,每次乘以10以保持逆序。
注意:这段代码没有进行详细的错误处理,比如检查输入是否确实是整数或者处理非法输入。这些额外的检查可以根据实际需求添加。