ITPub博客

首页 > > > 关于C语言的题目

关于C语言的题目

作者:古月雪 时间:2019-11-14 11:04:10 0 删除 编辑

输入十进制,八进制,十六进制输出二进制:

include<stdio.h>

include<math.h>

include<string.h>

void is_trans(char *number,int type);

void is_trans2(int sum);

void main()

{

char number[1000];

int type;

printf("请输入你要输入的数字:");gets(number);printf("请输入你要输入的数的进制:");scanf("%%d",&type);//为什么这里的scanf和前面的gets互换位置之后就只能输入scanf的,而gets直接被跳过了???is_trans(number,type);

}

void is_trans(char *number,int type)

{

int i,len,sum,q;

len = strlen(number);

sum = 0;

for(i =0;number[i] !='\0';i++){if(type==8||10)break;switch(number[i]) {case'A': number[i] =10;break;case'B': number[i] =11;break;case'C': number[i] =12;break;case'D': number[i] =13;break;case'E': number[i] =14;break;case'F': number[i] =15;break; }}for(i =0;number[i] !='\0';i++){ q =len-i-1; sum = sum + (number[i]*pow(type,q));//为什么当输入的是7和8时,这里的sum会变成55???}is_trans2(sum);

}

void is_trans2(int sum)

{

int i,a[1000],n,p;

n =0;for(i =0;sum !=0;i++){ p = sum %%2; sum = sum /2; a[i] = p; n++;}for(i = n -1;i >=0;i--){printf("%%d",a[i]);}

}

求大神解答:问题在代码注释里了。经过调试了的。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/3711/viewspace-3120547/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-07-09

  • 博文量
    160
  • 访问量
    1175