//do while把for改改
#include <stdio.h>
#include <math.h>
//函数声明
void tenTtwo(int x);
void main()
{
int a;
printf("请输入一个十进制数:");
scanf("%d",&a);
printf("二进制数为");
tenTtwo(a);
}
//函数实现
void tenTtwo(int x)
{
int j=0;
int d[1000]; //暂时分配1000块空间
int num=0; //用于计数 判断用户所需要多少长度的二进制数
//短除法 将余数放置于数组中
do
{
d[j]=(x%2);//余数
x=(x/2);
j++;
num++;
}while(x!=1);
d[num]=1; //最后一个数为1
/*
for(j=0;j<1000;j++)
{
d[j]=(x%2); //余数
x=(x/2);
if(x==1) //最后一个数
{
d[j+1]=1;
break;
}
num++;
}*/
//num++;
//逆向输出数组中的数据拼接成二进制数
for(j=num;j>=0;j--)
printf("%d",d[j]);
printf("\n");
}
追问我们才学简单的内容,没有这么深,就是#include void main(){………do{}while();}的模型
追答是用的do while啊,也没有你想象的那么深,跟楼上的相比我这已经非常简单了,只不过使用了函数,和数组而已.
#include <stdio.h>
#include <math.h>
void main()
{
int x;
int j = 0;
int d[1000]; //暂时分配1000块空间
int num = 0; //用于计数 判断用户所需要多少长度的二进制数
printf("请输入一个十进制数:");
scanf("%d", &x);
//短除法 将余数放置于数组中
do
{
d[j] = (x % 2);//余数
x = (x / 2);
j++;
num++;
}
while (x != 1);
d[num] = 1; //最后一个数为1
printf("二进制数为");
//逆向输出数组中的数据拼接成二进制数
for (j = num; j >= 0; j--)
printf("%d", d[j]);
printf("\n");
}
追问数组我们现在还没有学过啊,如果交上去老师会看出来的
追答那就没办法了
追问
本回答被提问者采纳