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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 522049094 中级黑马   /  2014-5-26 22:18  /  871 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. //为什么我的函数输出的结果是不正确的(还没有将数字的顺序倒换过来)
复制代码


1 个回复

正序浏览
  1. #include <stdio.h>
  2. #include <string.h>

  3. //number为待转换的数值,digits为进制数
  4. void tenToHex(int number,int digits,char *str)
  5. {
  6.     int j = 0;
  7.     //对传入的进制数进行判断,如果不在2-15之间就直接返回。
  8.     if (digits<2 || digits>16){
  9.         printf("非法进制!!!\n");
  10.         return ;
  11.     }
  12.     else
  13.     {
  14.         while (number)
  15.         {
  16.             if (number%digits >= 10)
  17.             {
  18.                 str[j++] = 'A' + (number%digits - 10);
  19.             }
  20.             else
  21.             {
  22.                 str[j++] = '0' + number%digits;
  23.             }
  24.             number = number/digits;
  25.         }
  26.     }
  27. }

  28. int main()
  29. {
  30.     int m = 21,n = 2;
  31.     char str[8];
  32.     tenToHex(m,n,str);
  33.     printf("%d,%d,%s\n",m,n,str);
  34.     return 0;
  35. }
复制代码


回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马