如果中间数字计算如此
num2=(num%100)/10;
然后计算不太重要的数字,如
num3 = (num % 10)/1;
要不就
num3 = num % 10;
这个说法
reverse = num3+ num2+ num1;
没有给出你期望的东西 . 你应该写
reverse = 100 * num3 + 10 * num2 + num1;
实际上你不需要计算数字 . 只需输入一个三位数字作为三个独立的数字 . :)
例如
#include
int main( void )
{
unsigned int n1, n2, n3;
printf("Enter a three-digit number: ");
scanf("%1u%1u%1u", &n1, &n2, &n3);
printf("Reversed number is %u%u%u\n", n3, n2, n1);
return 0;
}
程序输出可能看起来像
Enter a three-digit number: 263
Reversed number is 362
如果您不想输出前导零,则可以在程序中包含if语句 . 这不是这个陈述
printf("Reversed number is %u%u%u\n", n3, n2, n1);
你可以写
printf("Reversed number is ");
if (n3) printf("%u", n3);
if (n3 || n2) printf("%u", n2);
printf("%u\n", n1);
在这种情况下,如果要输入例如
100
然后输出将是
1
代替
001
或者您可以使用表达式 100 * n1 + 10 * n2 + n1 . 例如
printf("Reversed number is %u\n", 100 * n3 + 10 * n2 + n1);