黑马程序员技术交流社区

标题: C语言测试题:十进制转换其他进制 [打印本页]

作者: Reliable    时间: 2015-4-17 14:40
标题: C语言测试题:十进制转换其他进制
本帖最后由 Reliable 于 2015-4-18 15:10 编辑

题目:编程实现将任意的十进制整数转换成任意R进制数(R2-16之间)有人知道思路嘛?




作者: sunyang    时间: 2015-4-17 16:16
  1. //本程序实现偶数进制转换
  2. //奇数进制同样思路
  3. //switch 中添加相关子程序
  4. #include<stdio.h>
  5. void binary(int n)
  6. {
  7. if(n>1)binary(n/2);
  8. printf("%d",n%2);
  9. }
  10. void main()
  11. {
  12.     int a,c;
  13.     scanf("%d",&a);
  14.     printf("请输入想转换的进制:");
  15.     scanf("%d",&c);
  16.     switch(c)
  17.     {
  18.     case 2:binary(a);putchar('\n');break;
  19.     case 8:printf("%o\n",a);break;
  20.     case 10:printf("%d\n",a);break;
  21.     case 16:printf("%x\n",a);
  22.     }
  23. }
复制代码

——————————————————————————————————————————
如果我解决了你的问题,请按照这个帖子把问题改成已解决,这样你我都能得到技术分,谢谢
http://bbs.itheima.com/thread-85079-1-1.html

作者: 霸王睡别姬    时间: 2015-4-17 16:45
我先给你个简单的10转2的思路吧,其他都差不多哦,下面是代码,不同再问我哟
  1. #include<stdio.h>
  2. int main()
  3. {
  4.         int number;
  5.         int temp;
  6.         int array[100];
  7.         int j=0;
  8.         int i;int k;
  9.         int count;
  10.         printf("请输入你想转换的数:");
  11.         scanf("%d",&number);
  12.        
  13.         for(i=number;i>0;i--)
  14.         {
  15.                 temp=number%2;
  16.                 number=number/2;
  17.                 array[j++]=temp;
  18.                 if(number==0)
  19.                 break;
  20.         }


  21.         for(k=j-1;k>=0;k--)
  22.         {
  23.                 printf("%d",array[k]);
  24.         }
  25.                 printf("\n");
  26.         return 0;
  27. }
复制代码






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2