admin管理员组

文章数量:1794759

利用数组进行进制转换

利用数组进行进制转换

进制转换
  • 作业要求
  • 作业成品
  • 期间出现的问题
    • scanf
    • result=
    • a = b-1
    • for
C语言小白,在CSDN记录CG平台上的作业和心得

作业要求

【问题描述】十进制数转换为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次

纯萌新做分享,欢迎大佬指正

本文标签: 数组