C语言输入一个正整数n,将其逆序输出:
#includestdio.h
#includestdlib.h
int main(){
int a;
while(scanf("%d",a)!= EOF){
while(a0){
printf("%d",a%10);
a = a/10;
}
printf("\n");
}
return 0;
}
运行结果如下:
扩展资料:
算法:
首先判断输入的正整数的位数,(例如1000=n9999)
然后输出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);
#includestdio.h
int main()
{
int num;
scanf("%d",num);
int a,i;
for(i = 0;num 0;i++)
{
a = num % 10;
printf("%d",a);
num = num/10;
}
return 0;
}
分析:首先,输入的是一个整数,因此最前面一位数不是零,所以我们可以用除10取余法写。
a = num % 10
就是输出数字的最后一位
然后除10剔除数字最后一位,这样数字倒数第二位就会输出。以此类推,就能逆序输出数字。
拓展资料
for循环是编程语言中一种开界的循环语句,而循环语句由循环体及循环的终止条件两部分组成,for循环其在各种编程语言中的实现与表达有所出入,但基本为以C语言和pascal语言代表的两种形式。
C语言中的for循环如下
1.语句最简形式为:
for( ; ; )
2.一般形式为:
for(单次表达式;条件表达式;末尾循环体)
{
中间循环体;
}
scanf函数实际上是有问题的,%d的话会取到输进去的四位整数的值给了a,其他几个数并没有被赋值。要不这里你就用%c取字符,不然的话就用楼上讲的方法。其实只需要用字符取数,然后控制字符输出顺序来输出时最简单的了,如果有需要再转换成数字就行了
本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 162202241@qq.com 举报,一经查实,本站将立刻删除。