菜鸟求教C语言问题

/*这是代码问题出在这一句scanf("%d%ul",&m,&n);能通过,为什么写成这样scanf("ul%d",&n,&m);的话就通不过!!!*/#include<... /*这是代码 问题出在这一句scanf("%d%ul",&m,&n); 能通过,为什么写成这样scanf("ul%d",&n,&m); 的话就通不过!!!*/
#include <stdio.h>
void to_base_n(unsigned long n,int m);
int main(void)
{
int m;
unsigned long n;

printf("请输入要转换成的进制数和进行转换的十进制数:");
scanf("%d%ul",&m,&n);
printf("等同的%d进制值:",m);
to_base_n(n,m);
putchar('\n');
return 0;
}

void to_base_n(unsigned long n,int m)
{

int x;
if(m>=2&&m<=10)
{
x=n%m;
if(n>=m)
to_base_n(n/m,m);
putchar('0'+x);
}
return;
}
。。上面打错了,重来/*这是代码 问题出在这一句scanf("%d%ul",&m,&n); 能通过,计算结果正确。为什么写成这样scanf("%ul%d",&n,&m); 的话就得不到正确的值!!!*/

回复一楼,你说那里我少打了一个百分号,是手误,我的代码里是没有少的,所以问题还没解决,我的意思是%d和%ul为什么%ul放在%d前面计算结果会出问题,反之则不会。
回二楼,我也觉得很奇怪,但确实如此,我用的c-free写的代码,你复制代码去运行一下就知道了,求答案,很想知道问题出在哪里。
三楼正解,测试正常。但能不能解释下为什么%ul放在前面不行的原因呢,45度角仰视求解!
展开
 我来答
dlwill
2010-07-17
知道答主
回答量:16
采纳率:0%
帮助的人:11.4万
展开全部
哦,那是不是因为你用scanf("%ul%d",&m,&n)时n为整型、m为无符号长整型
调用to_base_n(n,m)函数时和m、n和形参类型不匹配的原因呢?
starrydzf
2010-07-17 · TA获得超过154个赞
知道答主
回答量:441
采纳率:0%
帮助的人:281万
展开全部
scanf("%u%d",&n,&m);
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jk250675350
2010-07-17 · 超过20用户采纳过TA的回答
知道答主
回答量:122
采纳率:0%
帮助的人:0
展开全部
这个不可能吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式