码:
#include <stdio.h>
int main()
{
int n, num1,num2,num3, reverse ;
printf("Enter the number to reverse:\n");
scanf("%d", &n);
num1 = n / 100;
num2 = (n % 100) / 10;
num3 = (n % 10) / 100;
reverse = num3*100+ num2*10;
printf(" The reverse is %d", reverse);
system("pause");
return 0;
}
我想在不使用任何循环的情况下反转一个数字,我包括了目前为止的步骤,但我不确定它是否正确:
-
将int声明为num1,num2和num3以及输出,反向
-
要求用户输入要反转的号码
-
使用scanf存储号码
-
获取数字的最后一位数,num1 = n / 100
-
从用户获取中间数字,num2 =(num%100)/ 10
-
要从用户获取最后一位数,num3 =(num%10)/ 100
这些步骤对吗?我尝试使用该程序,但没有任何运气,直到我得到正确的步骤 .
例:
Enter a number: 263
Output: 362
该数字始终为3位数,无论如何都不会有任何变化
4 回答
我认为这是一个更好的版本
虽然你可以通过创建一个新函数和反转n位数来使用递归,但我认为这段代码不能得到更清晰的代码 .
如果中间数字计算如此
然后计算不太重要的数字,如
要不就
这个说法
没有给出你期望的东西 . 你应该写
实际上你不需要计算数字 . 只需输入一个三位数字作为三个独立的数字 . :)
例如
程序输出可能看起来像
如果您不想输出前导零,则可以在程序中包含if语句 . 这不是这个陈述
你可以写
在这种情况下,如果要输入例如
然后输出将是
代替
或者您可以使用表达式
100 * n1 + 10 * n2 + n1
. 例如使用多样化的方法
或者如果你不想使用atoi
首先,你的num3是错误的,在下面修改,其次,反向计算错误