请问用C语言编写一个十进制转换成二进制或八进制或十六进制的程序需要怎么打?

本人C语言初学者,打成了这个样子,但是还有许多的问题在里面,请问哪里不对?#include"stdio.h"intmain(){inta,b,c[10000],i=0,j... 本人C语言初学者,打成了这个样子,但是还有许多的问题在里面,请问哪里不对?
#include"stdio.h"
int main(){
int a,b,c[10000],i=0,j=0;
printf("请输入想转换的a进制:a= ");
scanf("%d",&a);
switch (a)
{
case 2:
printf("请输入一个十进制:b= ");
scanf("%d",&b);
do
{
c[i]=b%2;
b=b/2;
i++;
j++;
}
while(b!=1);
c[j]=1;
printf("二进制为: ");
for(i=j;i>=0;i--)
printf("%d",c[i]);
break;
case 8:
printf("请输入一个十进制:b= ");
scanf("%d",&b);
do
{
c[i]=b%8;
b=b/8;
i++;
j++;
}
while(b!=1);
printf("八进制为: ");
for(i=j;i>=0;i--)
printf("%d",c[i]);
break;
case 16:
printf("请输入一个十进制:b= ");
scanf("%d",c[i]);
do
{
c[i]=b%16;
b=b/8;
i++;
j++;
}
while (b!=1);
printf("十六进制为: ");
for(i=j;i>=0;i--)
printf("%d",c[i]);break;
default:printf("错误\n");
}
}
展开
 我来答
爱教育爱学习
高粉答主

2019-11-20 · 学而不思则罔,思而不学则殆
爱教育爱学习
采纳数:384 获赞数:112720

向TA提问 私信TA
展开全部

#include<stdio.h>

voidmain()

{

//进制转换函数的声明

inttransfer(intx);

intx;

printf("请输入一个十进制数:");

scanf("%d",&x);

printf("转换成二进制数是:%d\n",transfer(x));

}

inttransfer(intx)

{

intp=1,y=0,yushu;

while(1)

{

yushu=x%2;

x/=2;

y+=yushu*p;

p*=10;

if(x<2)

{

y+=x*p;

break;

}

}

returny;

}

扩展资料

C语言:整数转换十六进制数和八进制

#include<stdio.h>

voidmain()

{

inti;

printf("请输入一个十进制数:");

scanf("%d",&i);

printf("这个数转换为十六进制数:%x\n\n",i);

printf("这个数转换为八进制数:%o\n",i);

getch();

return0;

}

KriverL
2017-12-07 · TA获得超过117个赞
知道答主
回答量:48
采纳率:78%
帮助的人:31.1万
展开全部
int main(){
int a,b,c[10000],i=0,j=0;
printf("请输入想转换的a进制:a= ");
scanf("%d",&a);
switch (a)
{
case 2:
printf("请输入一个十进制:b= ");
scanf("%d",&b);
do
{
c[i]=b%2;
b=b/2;
i++;
j++;
}
while(b!=1);
c[j]=1;
printf("二进制为: ");
for(i=j;i>=0;i--)
printf("%d",c[i]);
break;
case 8:
printf("请输入一个十进制:b= ");
scanf("%d",&b);
do
{
c[i]=b%8;
b=b/8;
i++;
j++;
}
while(b!=0);
printf("八进制为: ");
for(i=j-1;i>=0;i--)
printf("%d",c[i]);
break;
case 16:
printf("请输入一个十进制:b= ");
scanf("%d",&b);
do
{
c[i]=b%16;
b=b/16;
i++;
j++;
}
while (b!=0);
printf("十六进制为: ");
for(i=j-1;i>=0;i--)
printf("%d",c[i]);break;
default:printf("错误\n");
}
}

修改过的,望采纳

追问
正确了!十分感谢!
问题是出在case 16下面的scanf我把数组输入了是吧,还有两个是结束的条件不对是么
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式