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

2024-11-26 17:40:41
推荐回答(5个)
回答1:

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

#include

#include

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);

回答2:

#include

#include


int main(){

    int a;

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

        while(a>0){

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

        a = a/10;

        }

        printf("\n");

    }

    return 0;    

}

运行结果:

回答3:

代码就不给你写了,提供算法吧。
首先判断输入的正整数的位数,(例如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);

回答4:

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

#include
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;
}

回答5:

用不着递规。
#include

int main()
{
int n = 123;
while( n != 0 )
{
printf("%d",n%10);
n=n/10;
}
printf("\n");
return 0;
}