C语言输入一个正整数n,将其逆序输出。例如输入123,则程序将输出321

如题所述

C语言输入一个正整数n,将其逆序输出:

#include<stdio.h>

#include<stdlib.h>

int main(){

int a;

while(scanf("%d",&a)!= EOF){

while(a>0){

printf("%d",a%10);

a = a/10;

}

printf("\n");

}

return 0;    

}

运行结果如下:

扩展资料:

算法:

首先判断输入的正整数的位数,(例如1000=n<9999)

然后输出m(注意,C语言里方括号是取整运算符号)

//因为是整型运算,其实方括号可以省去

m=[n/1000]; //【取出千位】

n-=1000*[n/1000]; //【n只剩下三位】

m+=10*[n/100]; //【取出百位】

n-=100*[n/100]; // 【n剩下两位】

m+=100*[n/10]+1000*(n-[n/10]); //【取出十位】

printf("d%",m);

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

#include<stdio.h>

#include<stdlib.h>


int main(){

    int a;

    while(scanf("%d",&a)!= EOF){

        while(a>0){

        printf("%d",a%10);

        a = a/10;

        }

        printf("\n");

    }

    return 0;    

}

运行结果:

本回答被网友采纳
第2个回答  2018-02-19
代码就不给你写了,提供算法吧。
首先判断输入的正整数的位数,(例如1000=n<9999)
然后输出m(注意,C语言里方括号是取整运算符号)
//因为是整型运算,其实方括号可以省去

m=[n/1000]; //【取出千位】
n-=1000*[n/1000]; //【n只剩下三位】
m+=10*[n/100]; //【取出百位】
n-=100*[n/100]; // 【n剩下两位】

m+=100*[n/10]+1000*(n-[n/10]); //【取出十位】
printf("d%",m);
第3个回答  2018-02-19

从后面往前面一位一位输出

#include<stdio.h>
int n;
int main()
{
scanf("%d",&n);
if(n<0){ // 负数 
printf("-");
n=-n;
}
if(n==0) //特判0 
printf("0");
else{
int ans=0;
while(n>0){ //一位一位地输出到ans里 
ans=ans*10+n%10;
n/=10;
}
printf("%d",ans);
}
return 0;
}

第4个回答  推荐于2017-09-29
用不着递规。
#include <stdio.h>

int main()
{
int n = 123;
while( n != 0 )
{
printf("%d",n%10);
n=n/10;
}
printf("\n");
return 0;
}本回答被提问者采纳
相似回答