十进制转换成二进制  C语言

时间: 发布人:sirenzhuce

十进制转换成二进制  C语言

已解决问题

谷歌sirenzhuce用户在提交了关于“吐槽大会十进制转换成二进制  C语言”的提问,欢迎大家涌跃发表自己的观点。目前共有1个回答,最后更新于2024-10-26T16:43:46。程序填空,不要改变与输入输出有关的语句。
输入一个正整数repeat(0<repeat<10),做repeat次下列运算:
输入1个正整数n,将其转换为二进制后输出。
要求定义并调用函数dectobin(n),它的功能是输出n的二进制。例如,调用dectobin(10),输出1010。
输出语句:printf("%d");
例:括号内是说明
输入:
3(repeat=3)
15
100
0
输出:
1111
1100100
0


#include"stdio.h"
intmain()
{
intri,repeat;
inti,n;
voiddectobin(intn);

scanf("%d",&repeat);
for(ri=1;ri<=repeat;ri++){
scanf("%d",&n);
/*---------*/
printf("\n");
}
}
/*---------*/希望大家能够帮助她。

详细问题描述及疑问:程序填空,不要改变与输入输出有关的语句。
输入一个正整数repeat(0<repeat<10),做repeat次下列运算:
输入1个正整数n,将其转换为二进制后输出。
要求定义并调用函数dectobin(n),它的功能是输出n的二进制。例如,调用dectobin(10),输出1010。
输出语句:printf("%d");
例:括号内是说明
输入:
3(repeat=3)
15
100
0
输出:
1111
1100100
0


#include"stdio.h"
intmain()
{
intri,repeat;
inti,n;
voiddectobin(intn);

scanf("%d",&repeat);
for(ri=1;ri<=repeat;ri++){
scanf("%d",&n);
/*---------*/
printf("\n");
}
}
/*---------*/期待您的答案,我不知道说什么才好,除了谢谢 !

希望以下的回答,能够帮助你。

第1个回答

用户名:AI搜索  

在C语言中,可以通过多种方法将十进制数转换为二进制数。以下是几种常见的实现方法:

方法一:使用数组存储余数

#include<stdio.h>voidtransfer(intx){charbuf[32];inti=0;while((x/2)!=0){buf[i]=x%2;x=x/2;i++;}buf[i]=x%2;for(intj=i;j>=0;j--){printf("%d",buf[j]);}printf("\n");}intmain(void){intx;while(1){printf("请输入一个10进制数:");scanf("%d",&x);if(x<0)bre**;printf("%d的二进制是:",x);transfer(x);printf("\n");}printf("退问答出程序\n");retu损业察连令县画脚rn0;}

方法二:使用栈结

#include<stdio.h>#include<stdlib.h>#defineMAX_SIZE100typedefstruct{intdata[MAX_SIZE];inttop;}Stack;voidinitStack(Stack肉令鸡律任*s){s->top=-1;}voidpush(Stack*s,intvalue){if(s->top==MAX_SIZE-1){printf("栈满,无法压入元素。\n");return;}s->data[++s->to段我尔精八西步掌至练p]=value;}intpop(Stack*s){if(s->top==-1){printf("栈空,无己让策背点项称阶你厚法出元素。\n");return-1;}re便细操排你线矿旧基turns->data[s->top--];}voidd将放课道采专ecToBin(int**m){Stacks;initStack(&s);while(**m>0){push(&s,**m%2);**m/=2;}while(s.top!=-1){printf("%d",pop(&s));}printf("\n");}intmain(){int**m;printf("请输布难的存气念但垂换补入一个十进制数:");scanf("%d",&**m);decToBin(**m);return0;}

方法三:使用递归函

#include<stdio.h>voiddectobin(千蛋去义粮论生于止仅古intn,cha似调利波坏根欢烧较选rs[],int&i){if(n==0){i=0;return;}else{dectobin(n/2,s,i);s[i]='0'+n%2;i++;}}intmain(){intrepea述放轻零担身倒t,ri,n;scanf("%占长有效搞d",&repeat门同最农念老资);for(ri=1;ri<=repeat;ri++){scanf("%d",&n);if(n==0)printf("0\n")频查限;chars[50];intk=0;dectobin(n,s,k);s[k]='\0';printf("%s\n",s);}return0;}

以上少非孙示附代方法均能在C语言环境中实现十进制到二进制的转换。可以根据具体需求和偏逐混因斗好选择合适的方法。