输入一个十进制数,转换成对应的八进制数和十六进制数并输出。(急)!!!

/*【问题描述】输入一个十进制数,转换成对应的八进制数和十六进制数并输出。【输入形式】输入一个十进制数。【输出形式】输出对应的八进制数和十六进制数。【样例输... /*【问题描述】
输入一个十进制数,转换成对应的八进制数和十六进制数并输出。
【输入形式】输入一个十进制数。
【输出形式】输出对应的八进制数和十六进制数。
【样例输入1】(下划线部分为键盘输入,其余部分为程序输出)
Input a decimal: 31
【样例输出】
The octal is 37
The hexadecimal is 1F
【样例输入2】(下划线部分为键盘输入,其余部分为程序输出)
Input a decimal: 22
【样例输出】
The octal is 26
The hexadecimal is 16
【样例说明】
输入提示符后要加一个空格。例如“Input integers: ”,其中“:”后要加一个且只能一个空格。
输入的数据之间以一个空格相隔。
输出语句的“is”后面加一个且只能加一个空格。
英文字母区分大小写。必须严格按样例输入输出。*/
#include<stdio.h>
int main (void)
{
int n,m,t,s,a,b,i,j,k,x,y;
printf("Input a decimal: ");
scanf("%d",&n);

t=n%8;
n=n/8;
while(n!=0){
m=n%8;
n=n/8;
t=t*10+m;
}
s=t;
a=s%10;
s=s/10;
while(s!=0){
b=a%10;
s=s/10;
a=a*10+b;
}
printf("The octal is %o\n",a);
i=n%16;
n=n/16;
while(n!=0){
j=n%16;
n=n/16;
i=i*10+j;
}
k=i;
x=k%10;
k=k/10;
while(k!=0){
y=k%10;
k=k/10;
x=x*10+y;
}
printf("The hexadecimal is %x",x);

return 0;
}

大神们快帮我看看哪出错了!!
展开
 我来答
暴躁甜3w
2014-05-14 · 超过16用户采纳过TA的回答
知道答主
回答量:101
采纳率:0%
帮助的人:49.2万
展开全部
n=n/8
n的值就变了 而不是输入的值
先改了 看看对不对
更多追问追答
追问
嗯,那确实不对,但改完以后,还是不对,应该还有别的错误吧,再帮忙瞅瞅
追答
你还在吗 
怎么不回啊
你的printf()中的%o 有自动将十进制转化为八进制的功能
谢谢
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
强子在襄阳a
2020-05-14
知道答主
回答量:65
采纳率:100%
帮助的人:2.2万
展开全部
这个……我今天也碰到了,阿西吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式