C语言里输入一个正整数,如何让它逆序输出?

C语言里输入一个正整数,如何让它逆序输出?

int main()

{

int i=12345; //定义一个12345的整数

int temp=0;//temp作为存储的值

while(i!=0){

temp = temp*10 + i%10;

i/=10;  

}  //反序取出来

printf("%d",temp); //打印

return 0;

}

扩展资料:

反之正序输出

输入 : 12345

输出 :"12345"

char str(int x)

{

char a[100];//存放整数转换过来的字符

int i;   //计数

if(x/10!=0)

str(x/10);

if(x>=0)

a[i]='0'+x%10;  //整数转换成字符存储,字符都是以整数形式存储

else

a[i]='0'+(-x)%10;//整形包括负数

printf("%c",a[i++]);

}

int main()

{

int i;

printf("请输入一个整数:\n");

scanf("%d",&i);

str(i);

return 0;

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-10

可以通过数组保存正整数的从最低位到最高位的每一位数值,之后输出数组元素即可。


具体实现方法可以参考如下程序:

#include<stdio.h>
void main()
{
    int num, a[10], i, k=0;
    printf("请输入一个正整数:");
    scanf("%d", &num);
    // 分离正整数的每一位,并存放到数组a中
    while(num>0)
    {
        a[k++] = num%10;  // 将正整数的最低位保存到数组a中
        num /= 10;        // 将正整数的次低位变为最低位
    }
    // 输出数组的每个元素,即实现逆序输出正整数
    for(i=0; i<k; i++)
        printf("%d", a[i]);
}

第2个回答  推荐于2017-10-05
假设输入的数为n,逆序输出的是converse用以下循环就可以了
for(i=n;i>0;)
{
m=i%10;
i/=10;
converse=m+converse*10;
}
具体代码
#include<stdio.h>
#include<stdlib.h>
int main()
{
int n,i,m,converse;
scanf("%d",&n);
i=n;converse=0;
while(i>0)
{
m=i%10;
i/=10;
converse=m+converse*10;
}
printf("%d",converse);

}本回答被提问者采纳
第3个回答  2012-04-01
#include <stdio.h>
main()
{
int i,j;
scanf("%d",&i);
j=i%10;
printf("%d",j);
while(j>0)
{
i/=10;
j=i%10;
printf("%d",j);
}
}
第4个回答  2009-10-28
#include<stdio.h>
void main()
{int a,b;
scanf("%d",&a);
b=a%10;
printf("%d ",b);
a=a/10;
printf("\n");
}
相似回答