admin管理员组文章数量:1794759
利用数组进行进制转换
进制转换
- 作业要求
- 作业成品
- 期间出现的问题
- scanf
- result=
- a = b-1
- for
【问题描述】十进制数转换为R进制数。R可以是2、3、4、5、6、7、8、9、10之一。 【输入形式】输入十进制数。 【输出形式】输出R进制数。 【样例输入】dec=???,R=??? 【样例输出】result=??? 【样例说明】 【评分标准】
作业成品 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main() { int dec, R, a; int b = 0; int c[100]; scanf("dec=%d,R=%d", &dec, &R); do { c[b++] = dec % R; dec = dec / R; } while (dec != 0); printf("result="); for (a = b - 1; a >= 0; a--) { printf("%d", c[a]); } return 0; } 期间出现的问题 scanf最开始是
scanf("%d,%d", &dec, &R);结果发现dec和R一直没输进去,解决措施就是加上”dec=,R=“
scanf("dec=%d,R=%d", &dec, &R);因为样例输入给的是"dec=???,R=???",变量是后面那一块
result= printf("result=%d",c[a]);出现的问题就是打印了好几遍result,把它单独拿出来打印就好
a = b-1因为前面有个b++,先使用,后++
c[b++] = dec % R;所以实际b最后那一个是无效的,不能直接a=b,需要把多加的那一位给减掉,也就是这样:
for (a = b-1; a >= 0; a--) { printf("%d", c[a]); } for对于我一个C语言小白来说,for循环次数比较费劲,在此做个笔记
#include <stdio.h> int main() { int i; for (i = 10; i >= 0; i--) { printf("%d", i); } return 0; }输出结果
109876543210
#include <stdio.h> int main() { int i; for (i = 0; i <= 10; i++) { printf("%d", i); } return 0; }输出结果
012345678910
可见,实际执行了11次,这两种情况都是i+1次
纯萌新做分享,欢迎大佬指正
本文标签: 数组
版权声明:本文标题:利用数组进行进制转换 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1686579521a84000.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论