解题思路:通过乘方再取余获得最高位和去掉最高位、动态控制位宽
注意事项:逐位输出用count(位数)作为判断表达式,别用 i(当前值)
参考代码:
#include <stdio.h> #include <math.h> int main(){ int num,count=0; scanf("%d",&num); // 1、计数 for(int i=num;i;i/=10) count++; printf("%d\n",count); // 2、逐位输出 ,用count判断要输出几位 // 用 i则不会输出所有末位0,如 123000 只输出 1 2 3 for(int i=num;count;i%=(int)pow(10,count)) // 动态控制位宽,由于--count,只剩下一位时,count=0,位宽 1 printf("%*d",count?-2:1,i/(int)pow(10,--count)); printf("\n"); // 3、反序输出 for(int i=num;i;i/=10) printf("%d",i%10); }
0.0分
0 人评分
C语言程序设计教程(第三版)课后习题7.4 (C语言代码)浏览:565 |
C二级辅导-同因查找 (C语言代码)浏览:581 |
C语言训练-自由落体问题 (C语言代码)浏览:1736 |
拆分位数 (C语言代码)浏览:1327 |
WU-输入输出格式练习 (C++代码)浏览:1079 |
【计算球体积】 (C语言代码)浏览:1101 |
字符逆序 (C语言代码)浏览:457 |
A+B for Input-Output Practice (VI) (C语言代码)浏览:552 |
矩形面积交 (C++代码)浏览:1127 |
2006年春浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:344 |