为什么无法进行下一步调试了

玛丽苏打肉饼 2019-01-13 04:46:18
您好,为什分布调试的时候,到了scanf之后就无法往下走了,谢谢
#include <stdio.h>
int main()
{
int max4 (int a,int b,int c,int d);
int a,b,c,d,max;
printf("Please enter 4 interger numbers:");
scanf("%d,%d,%d,%d,%d",&a,&b,&c,&d);
max=max4(a,b,c,d);
printf("the largerst number is :%d\n",max);
return 0;
}
int max4 (int a,int b, int c,int d)
{
int max2 (int a,int b);
int m;
m=max2(a,b);
m=max2(m,c);
m=max2(m,d);
return (m);
}
int max2 (int a,int b)
{
if (a>=b)
return a;
else
return b;
}
...全文
672 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
齐卡卡西 2019-01-14
  • 打赏
  • 举报
回复
你的这个scanf,要在输入数据的时候输入逗号,而不能是其他字符才行,当然你可以把%d间的字符删除,输入时用空格隔开就好
赵4老师 2019-01-14
  • 打赏
  • 举报
回复
printf里面的%和变量的一一对应关系
scanf里面的%和变量以及变量前加不加&的一一对应关系
是C代码中非常容易出错的地方,而且通常编译还不出错。
所以在编译源代码之前值得专门仔细检查一遍甚至多遍。
棉猴 2019-01-14
  • 打赏
  • 举报
回复
又见VC++6.0,这是我最喜欢的调试器!
正如楼上几位朋友所说,scanf输入格式和输入的内容不匹配,有5个%d,而后面只有4个参数。把代码修改为
scanf("%d,%d,%d,%d", &a, &b, &c, &d);

还需要注意的是在控制台中输入数字的格式,应该如下图所示

数字与数字中间要有一个英文格式的逗号,此时的输出结果为

如果不想在输入时加入逗号,应该把scanf()函数的代码改为
scanf("%d %d %d %d", &a, &b, &c, &d);//此时d%之间没有逗号

此时在控制台中输入输出的效果如图所示
冷风1023 2019-01-14
  • 打赏
  • 举报
回复
scanf("%d,%d,%d,%d,%d",&a,&b,&c,&d);
自信男孩 2019-01-14
  • 打赏
  • 举报
回复
无法继续调试,应该是没有输入完全。scanf输入格式和输入的内容不匹配。%d(5个),参数个数是4个。
一点涵 2019-01-13
  • 打赏
  • 举报
回复
你前面是五个%d,后面是四个输入
玛丽苏打肉饼 2019-01-13
  • 打赏
  • 举报
回复
我输入了,但是为什么不行啊,是我输入的地方不对吗
Isnis-fallen 2019-01-13
  • 打赏
  • 举报
回复
scanf函数是阻塞,等待用户输入数据才能继续
彼岸无灵 2019-01-13
  • 打赏
  • 举报
回复
应该是逗号吧,把逗号去掉

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧