编写程序,输入一个正整数 n,将其逆序输出,例如输入 12,输出 21。 输入123 输出321
代码相对复杂,后续会改进和其他方法,请多多评论指教,谢谢大家。
#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[])
{
long int a,b,c=1,d,middle;
printf("请输入一个正整数\n");
scanf("%ld",&a);//输入的数赋值给变量
d=a/10;
//对输入量进行一次整除10,未参与循环,故对输入量输入数的位数c格式化为1,以确保数据准确
while(d!=0)//计算输入数据的位数
{
d=d/10;
c+=1;
}
long int e=0;//对返回输出的数据进行定义
while(c!=0)//计算返回的数
{
middle=a%10;//将输入数据的第一位(个位)数取出
a=a/10;
//取出第一位数后进行除以10,剩余未操作的数,以便进行后续循环
e=middle+e*10;//计算返回的数
c--;//结束循环的条件 w
}
printf("%ld\n",e);//打印改变后的值
return 0;
}
改1:
#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[])
{
long int a,middle,e=0;;
printf("请输入一个正整数\n");
scanf("%ld",&a);//输入的数赋值给变量
while(a!=0)//计算返回的数
{
middle=a%10;//将输入数据的第一位(个位)数取出
a=a/10;
//取出第一位数后进行除以10,剩余未操作的数,以便进行后续循环
e=middle+e*10;//计算返回的数
}
printf("%ld\n",e);//打印改变后的值
return 0;
}