2.提高题:给一个不多于5位的正整数,要求:1求出它是几位数;2分别打印出
每一位数字;3按逆序打印出各位数字,例如原数是321,应输出123。
c语言用switch如何做
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
关注 #include <stdio.h> #include <stdlib.h> #include <math.h> int main() { int num, i, j, bit, c[7], n[7]; printf("Please enter number: "); //输入一个整数 scanf("%d", &num); //判断整数是否多于5位,报错,重新输入 while (num >= 100000){ printf("Error!\nPlease enter number: "); scanf("%d", &num); } //判断整数是几位数 for (i = 1; i < 1000000 && j != 0; i *= 10) j = num / i; i /= 100; switch(i){ case 1: bit = 1; break; case 10: bit = 2; break; case 100: bit = 3; break; case 1000: bit = 4; break; case 10000: bit = 5; break; default: break; } printf("%d is %d bits!\n", num, bit); //此处是一个为输出数字的中间模块 for (i = 0; i <= bit; i++) c[i] = num / pow(10, bit-i); //分别输出整数的每位数字 for (i = 0; i < bit; i++){ n[i] = c[i+1] - c[i] * 10; printf("%d ", n[i]); } printf("\n"); //逆序输出每位数字 for (i = bit-1; i >= 0; i--) printf("%d ", n[i]); printf("\n"); system("pause"); return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 stata安慰剂检验作图但是真实值不出现在图上
- ¥15 c程序不知道为什么得不到结果
- ¥40 复杂的限制性的商函数处理
- ¥15 程序不包含适用于入口点的静态Main方法
- ¥15 素材场景中光线烘焙后灯光失效
- ¥15 请教一下各位,为什么我这个没有实现模拟点击
- ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
- ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
- ¥20 有关区间dp的问题求解
- ¥15 多电路系统共用电源的串扰问题