c语言要求设计一个程序是输入的第一个十进制数直接输出,第二个十六进制数以十进制输出,

请问我写的语句那里错啦,无法达到要求
# include "stdio.h"
main()
{
int a,b;
scanf("%d%x",&a,&b);
printf("%d%d",a,b);
}

代码没看出有什么问题
printf的时候中间加个空格会好一些
#include "stdio.h"
main()
{
int a,b;
scanf("%d%x",&a,&b);
printf("%d %d",a,b);
}
你的输入是什么样的?
我用
1 0x123456
得到输出
1 1193046
另外要注意一点
如果输入的是8位的16进制 且第一位大于7 那么会输出负数
比如
234 0x80125486
234 -2146282362
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-01-28
scanf("%d %x",&a,&b);输入的两个数加个空格,要不然一起输入分不清前几位是第一个数,第几位开始是的二个数。
第2个回答  2014-01-28
你的输入有问题
你在输入第二个数的时候要以 0x 开头 eg:0x11等追问

第二个数总是负数,16进制我就是一0x开头的

追答

你输的0x多少啊?? 你敢不敢输入一个我们可以预计的值 比如 0x11 = 17 之类的
如果你要问问什么是赋值,那要看你是不是输入的一个负数

第3个回答  2014-01-28
输入的不用加个空格隔开?
scanf(“%d %x”)然后输入的时候两个数之间也加空格,这样会好些吗?
相似回答
大家正在搜