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);
#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);
从后面往前面一位一位输出
#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;
}
用不着递规。
#include
int main()
{
int n = 123;
while( n != 0 )
{
printf("%d",n%10);
n=n/10;
}
printf("\n");
return 0;
}