解题思路:此题用普通方法判断是多少位也可以,但是代码比较长,如果用sprintf函数则很简单。把输入的数字转换为数字字符串,然后再求长度即可判断是几位数,然后再输出每一位,再逆序输出每一位即可。
参考代码:
#include <stdio.h> #include <string.h> int main() { int a,len,i,j; char s[6]; scanf("%d",&a); sprintf(s,"%d",a); //转换为数字字符串 len=strlen(s); //求长度即可判断是几位数 printf("%d\n",len); for(i=0;i<len;i++) //输出每一位 printf("%c ",s[i]); printf("\n"); for(i=len-1;i>=0;i--) //逆序输出每一位 printf("%c",s[i]); printf("\n"); return 0; }
0.0分
45 人评分
为啥我用你的代码,结果是错误的。 #include<stdio.h> #include<string.h> int main() { int len,i; char s[5]; scanf("%c",&len); len=strlen(s); printf("%d\n",len); for(i=0;i<len;i++) printf("%c",s[i]); printf("\n"); for(i=len-1;i>=0;i--) printf("%c",s[i]); return 0; }
杨林zxp 2020-04-20 16:32:43 |
老铁你len是int型的,你scanf是里应该是%d
为什么这里定义的数组要用字符数组呢?
黑飞蛾 2019-11-05 21:51:04 |
因为题目要求输入一串数字如:2659,如果你是int型默认这是一个数字储存在一个单元之中,并不会把他分开来,导致后续操作无法完成。
cuzz,rank的神 2020-02-13 15:15:23 |
输出第二行数字的时候不是要求最后一个数字后面没有空格吗??
C语言训练-谁家孩子跑最慢* (C语言代码)浏览:1508 |
C语言训练-求s=a+aa+aaa+aaaa+aa...a的值 (C++代码)(手动优化一下计算)浏览:1284 |
矩形面积交 (Java代码)浏览:1221 |
C语言程序设计教程(第三版)课后习题11.3 (C语言代码)浏览:1039 |
WU-链表数据求和操作 (C++代码)浏览:1316 |
矩阵加法 (C语言代码)浏览:1723 |
简单的a+b (C语言代码)浏览:419 |
循环入门练习6 (C语言代码)浏览:970 |
C语言程序设计教程(第三版)课后习题10.1 (C语言代码)浏览:537 |
时间转换 (C语言代码)浏览:628 |