本帖最后由 BBD2008 于 2014-12-29 23:54 编辑
- // 附上第九题我自己写的答案
- #include <stdio.h>
- #include <string.h>
- // 翻译整形数字为单个字符
- char fanyi(int shuzi)
- {
- switch (shuzi)
- {
- case 15:
- return 'f';
- case 14:
- return 'e';
- case 13:
- return 'd';
- case 12:
- return 'c';
- case 11:
- return 'b';
- case 10:
- return 'a';
- case 9:
- return '9';
- case 8:
- return '8';
- case 7:
- return '7';
- case 6:
- return '6';
- case 5:
- return '5';
- case 4:
- return '4';
- case 3:
- return '3';
- case 2:
- return '2';
- case 1:
- return '1';
- default:
- return '0';
- }
- }
- int main()
- {
- // 用于存放输入的数字
- int num;
- // 用于存放输入的进制
- int R;
- // 用于记录字符串下标
- int i = 0;
- // 记录字符用的字符串
- char s[50000];
- // 临时记录数的每一位
- int temp;
-
- printf("请输入一个十进制整数:");
- scanf("%d", &num);
- printf("请输入一个2到16之间的整数:");
- scanf("%d", &R);
-
- while((num / R) >= 1)
- {
- temp = num % R;
- s[i] = fanyi(temp);
- i++;
- num = num / R;
- }
-
- s[i] = fanyi(num);
- s[++i] = '\0';
-
- for (; (i - 1) >= 0; i--)
- {
- printf("%c",s[i-1]);
- }
-
- return 0;
- }
复制代码
大体思想就是把翻译后的每一位从右到左写进数组里,然后再倒着遍历一遍数组打印出来。
希望能对你有所帮助,希望不会被删帖,希望不会被禁言,我是好孩子,如果不能发的话我可以自己删掉的。 |