A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. #include <stdio.h>

  2. // 将任意整数进制转换成2-16进制

  3. int main()
  4. {
  5.     // 输入一个进制数
  6.     printf("请输入2-16的这个整数");
  7.     int radix;
  8.     scanf("%d",&radix);
  9.    
  10.     // 输入一个整数
  11.     printf("请输入一个要转换的整数");
  12.     int num;
  13.     scanf("%d",&num);
  14.     int number = num;
  15.    
  16.     // 创建一个字符串存放结果
  17.     char array[30];
  18.    
  19.     // 初始化i
  20.     int i;
  21.     // 循环算法:当num不等于0的时候循环
  22.     for (i = 0; num!=0; i++, num = num/radix)
  23.     {
  24.         
  25.         // 得到num除以进制数的余数,并存到数组中
  26.         switch (num%radix)
  27.         {
  28.             case 15:
  29.                 array[i] = 'F';
  30.                 continue;
  31.             case 14:
  32.                 array[i] = 'E';
  33.                 continue;
  34.             case 13:
  35.                 array[i] = 'D';
  36.                 continue;
  37.             case 12:
  38.                 array[i] = 'C';
  39.                 continue;
  40.             case 11:
  41.                 array[i] = 'B';
  42.                 continue;
  43.             case 10:
  44.                 array[i] = 'A';
  45.                 continue;
  46.             default:
  47.                 array[i] = num%radix + '0';
  48.                 continue;
  49.         }
  50.       
  51.     }
  52.     // 反向输出字符串数组
  53.     printf("%d进制的%d为:",radix,number);
  54.     for (int j = i-1; j>=0; j--)
  55.     {
  56.         printf("%c",array[j]);
  57.         if (j==0)
  58.         {
  59.             printf("\n");
  60.         }
  61.     }
  62.         return 0;
  63. }
复制代码

11 个回复

倒序浏览
李海贤 来自手机 中级黑马 2015-8-8 21:18:16
沙发
牛逼!666
回复 使用道具 举报

..........额
回复 使用道具 举报
牛逼啊!只能围观学习了啊!
回复 使用道具 举报
前面两个scanf输入的值不太懂,请问一下是为什么?
回复 使用道具 举报
阿伦666 发表于 2015-8-9 16:29
牛逼啊!只能围观学习了啊!

额 0.0 不牛逼不牛逼 这只是基础测试里面的东西。
回复 使用道具 举报
KongPro 发表于 2015-8-9 18:57
前面两个scanf输入的值不太懂,请问一下是为什么?

这个本身是要实现10进制数 转 2-16中任意进制的功能  第一个scanf就是从键盘上输入你要转成多少进制,第二个就是你想把哪个数转成该进制喽。
回复 使用道具 举报
 神马都是浮云 发表于 2015-8-10 09:57
这个本身是要实现10进制数 转 2-16中任意进制的功能  第一个scanf就是从键盘上输入你要转成多少进制,第 ...

哦哦 明白了
回复 使用道具 举报
学习了!
回复 使用道具 举报
command+c了
回复 使用道具 举报
学习学习
回复 使用道具 举报
sl123 中级黑马 2015-8-11 22:36:11
12#
确实是高手啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马