7个回答
展开全部
//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");
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include "stdio.h"
#define StackSize 100
typedef int ElemType;
typedef struct {
ElemType elem[StackSize];
int top;
}SqStack;
InitStack(SqStack *pS)
{
pS->top=0; /* top指向栈顶的上一个元素 */
}
int Push(SqStack *pS,ElemType e)
{
if (pS->top==StackSize-1) /* 栈满 */
return 0;
pS->elem[pS->top]=e;
pS->top=pS->top+1;
return 1;
}
int Pop(SqStack *pS,ElemType *pe)
{
if (pS->top==0) /* 栈空 */
return 0;
pS->top = pS->top - 1;
*pe = pS->elem[pS->top];
return 1;
}
main()
{
SqStack S;
ElemType e;
int N;
InitStack(&S);
printf("请输入一个十进制整数:\n");
scanf("%d",&N);
do
{
e = N % 2;
Push(&S,e);
N = N/2;
} while(N);
while(Pop(&S,&e))
{
printf("%d",e);
}
printf("\n");
return 0;
}
#define StackSize 100
typedef int ElemType;
typedef struct {
ElemType elem[StackSize];
int top;
}SqStack;
InitStack(SqStack *pS)
{
pS->top=0; /* top指向栈顶的上一个元素 */
}
int Push(SqStack *pS,ElemType e)
{
if (pS->top==StackSize-1) /* 栈满 */
return 0;
pS->elem[pS->top]=e;
pS->top=pS->top+1;
return 1;
}
int Pop(SqStack *pS,ElemType *pe)
{
if (pS->top==0) /* 栈空 */
return 0;
pS->top = pS->top - 1;
*pe = pS->elem[pS->top];
return 1;
}
main()
{
SqStack S;
ElemType e;
int N;
InitStack(&S);
printf("请输入一个十进制整数:\n");
scanf("%d",&N);
do
{
e = N % 2;
Push(&S,e);
N = N/2;
} while(N);
while(Pop(&S,&e))
{
printf("%d",e);
}
printf("\n");
return 0;
}
追问
我们才学简单的内容,没有这么深,就是#include void main(){………do{}while();}的模型
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <stdio.h>
#include <math.h>
void main()
{
int iInput = 0;
scanf("%d", &iInput);
int iResult = 0;
int iQuotient = 0; //商
int iRemainder = 0; //余数
int iPlace = 0;
do
{
iRemainder = iInput % 2;
iQuotient = iInput / 2;
iResult += iRemainder * pow((double)10, iPlace);
iPlace++;
iInput = iQuotient;
} while (iInput);
printf("\n结果:%d", iResult);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
//#include "stdafx.h"//vc++6.0加上这一行.
#include "stdio.h"
void dfs(int k){
if(k) dfs(k/2);
if(k) printf("%d",k%2);
}
void main(void){
int n;
printf("Type an integer...\nn=");
scanf("%d",&n);
printf("Binary of %d is ",n);
dfs(n);
printf("\n");
}
#include "stdio.h"
void dfs(int k){
if(k) dfs(k/2);
if(k) printf("%d",k%2);
}
void main(void){
int n;
printf("Type an integer...\nn=");
scanf("%d",&n);
printf("Binary of %d is ",n);
dfs(n);
printf("\n");
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询