发布网友
共2个回答
热心网友
#include <stdio.h> void main() { int a; scanf("%d",&a); char c[100],b[100]; int len=0; while (a>0) { c[len++]=a%2; a=a/2; } for (int i=0;i<len;i++) { b[i]=c[len-i-1]+'0'; } b[len]='\0'; printf("%s",b); } 补充: 方法二: #include <stdio.h> void main() { int a; scanf("%d",&a); char c[100],b[100]; int len=0; if (a==0) { printf("0"); } while (a>0) { c[len++]=a&1; a>>=1; } for (int i=0;i<len;i++) { b[i]=c[len-i-1]+'0'; } b[len]='\0'; printf("%s",b); } 追问: char c[100],b[100];编译时提示表达式语法错误。 为什么要char c[],b[]。啊 int 不行吗。 不过这程序我看不懂。 学的还浅。比如:b[i]=c[len-i-1]+'0'; 还有b[len]='\0'; 这两句不明白怎么回事。请帮我解答一下吧。 回答: //应该没错误吧,我都测试过了,不行的话试试这个char c[100]={'\0'},b[100]={'\0'}; #include <stdio.h> void main() { int a; scanf("%d",&a); char c[100],b[100]; //用于存储二进制符号 int len=0; //数组长度 while (a>0) //a大于零则进入循环 { c[len++]=a%2; a=a/2; } //下面的for语句是为了将数组倒置,并将数字转化为字符(+'0') for (int i=0;i<len;i++) { b[i]=c[len-i-1]+'0'; //数组倒置,并将数字转化为字符 } b[len]='\0'; //串尾结束符 ,指明字符串在这里结束 printf("%s",b); }
热心网友
十进制转换为二进制的方法,十进制转化为二进制,十进制转2进制