解题思路:通过乘方再取余获得最高位和去掉最高位、动态控制位宽
注意事项:逐位输出用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语言程序设计教程(第三版)课后习题1.6 (C语言代码)浏览:676 |
P1001 (C++代码)浏览:774 |
C语言程序设计教程(第三版)课后习题9.2 (C语言代码)浏览:687 |
汽水瓶 (C语言代码)浏览:598 |
C语言程序设计教程(第三版)课后习题6.4 (C语言代码)浏览:738 |
C语言程序设计教程(第三版)课后习题6.10 (C语言代码)浏览:879 |
出圈】指针malloc版浏览:355 |
数组与指针的问题浏览:716 |
C语言训练-大、小写问题 (C语言代码)浏览:677 |
C语言程序设计教程(第三版)课后习题6.9 (C语言代码)浏览:582 |