c语言“把十进制数转换成八进制数”怎么写

 我来答
流星不死
2013-12-07 · TA获得超过1662个赞
知道小有建树答主
回答量:1621
采纳率:0%
帮助的人:1319万
展开全部
#include<stdio.h>
#include<string.h>
main()
{
int i,m,n,s=0,t=1;char a[100],b[100]; 
gets(a);//用回车分割 
scanf("%d%d",&n,&m); //输入的进制和想要转换的进制 
for(i=strlen(a)-1;i>=0;i--)//先转10进制 
{ if(n!=16) 
s+=(a[i]-48)*t;
else
  s+=(a[i]-55)*t;
t*=n;
}
for(i=0;s;i++)//10进制转你想要的进制 
{
if(s%m>=10)
b[i]=s%m+55;
else 
b[i]=s%m+48;
s/=m; 

b[i]='\0';
for(i=strlen(b)-1;i>=0;i--)
printf("%c",b[i]); 
}

这是任意进制的转换 望满意

追问
是用c++写的吗
追答
c语言啊
贾桂枝晋琴
2019-01-30 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.2万
采纳率:24%
帮助的人:1971万
展开全部
c语言程序十进制的数转换成八进制的数的办法:
#include
#include
void
main()
{
int
n,a,sum
=
0,i
=0;
printf("十进制输出一个数n\n");
scanf("%d",&n);
while(n)
{
a
=
n%8;
n
=
n/8;
sum
+=
a*pow(10,i);
i++;
}
printf("八进制输出sum:%d",sum);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
花花浪客
2013-12-07 · TA获得超过2069个赞
知道小有建树答主
回答量:792
采纳率:100%
帮助的人:714万
展开全部
写一个递归函数,除8取余,然后对商进行递归一直到商等于0为止
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-12-07
展开全部
用10进制数除以8,取余数放到最右边,继续除以8,直到余数为8,之前的余数都是从右向左输出,别忘了8进制数前面都有0,比如20的转换就是084
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
外圆内方的铜钱
2013-12-07
知道答主
回答量:31
采纳率:0%
帮助的人:21.2万
展开全部
#include <stdio.h>

int main(void)
{
int n; // n存放要转换的数值
int s; // s存放商
int y; // y存放余数
char c[8] = {0}; //此数组存放8位八进制数
int i; // 累计变量

scanf("%d", &n);

s = n;

for (i=0; s != 0; i++)
{
y = s % 8;
s = s / 8;
c[i] = y;
}

printf("\t%d的八进制为:\n\n\t", n);

for (i=7; i>=0; --i)
{
if (i % 8 == 3)
printf(" ");

printf("%d", c[i]);
}
printf("\n\n");

return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式