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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wangxiaopang 中级黑马   /  2016-7-19 06:37  /  1491 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. /*
  2. 进制转换,10进制转2-16进制输出
  3. */
  4. #include <stdio.h>
  5. #include <math.h>
  6. void change(char array[32],int x,int y){
  7.    //定义字符数组用来存放每位有可能的取值范围
  8.     char ch[16] = {'0','1','2','3','4','5','6','7'
  9.                     ,'8','9','a','b','c','d','e','f'};
  10.     //定义数组用来临时存放数据 从低位到高位
  11.     char arr[32]= {'0'};
  12.     //记录数组的长度
  13.     int count = 0;
  14.     //从低到高存储每个数据到数组
  15.     for (int i = 0; i < 32; i++) {
  16.         arr[i] = ch[x%y];
  17.         if(x/y !=0){
  18.             x = x/y;
  19.             count++;
  20.         }else
  21.             break;
  22.         
  23.     }
  24.     //逆序数组
  25.     for (int i = count ; i >= 0; i--) {
  26.         array[count - i] = arr[i];
  27.         //printf("%c",arr[i]);
  28.     }
  29. }
  30. int main(){
  31.     //定义变量m 要输入的十进制数,n要转换成几进制的数
  32.     int num = 0,in = 0;
  33.     printf("请输入要转换的十进制数,以及要转换的进制:\n");
  34.     scanf("%d%d",&num,&in);
  35.     //定义数组用来存放转换后的数据
  36.     char arr[32] = {'0'};
  37.     //进行转换
  38.     change(arr,num,in);
  39.     printf("%d转换成%d进制是:",num,in);
  40.     //输出结果
  41.     for (int i = 0; i < 32; i++) {
  42.         printf("%c",arr[i]);
  43.     }
  44.     printf("\n");
  45.    
  46. }
复制代码

2 个回复

倒序浏览
没看懂,感觉像是很牛逼的样子
回复 使用道具 举报
瑜尚 发表于 2016-7-19 09:08
没看懂,感觉像是很牛逼的样子

就随便写写,写的很垃圾
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马