新手求教,起步刚开始学C,百思不得其解

程序老小白 2016-05-14 09:50:07
#include<stdio.h>
int main()
{
int a,b,c,d;
printf("输入a,b,c:");
scanf("%d,%d,%d",&a,&b,&c);
d=a;
if (d<b)d=b;
if (d<c)d=c;
printf("max=%d\n",d);
return 0;
}
请问这样的语句是否有错,为什么我编译运行后 输入任何三个数字都是显示第一个的值
...全文
227 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
fxfxfxfxw 2016-05-18
  • 打赏
  • 举报
回复
3L正解,scanf掌握得不熟练
程序老小白 2016-05-16
  • 打赏
  • 举报
回复
引用 10楼赵4老师 的回复:
请检查scanf的返回值。
请教怎么检查
赵4老师 2016-05-16
  • 打赏
  • 举报
回复
请检查scanf的返回值。
sty_app 2016-05-16
  • 打赏
  • 举报
回复
scanf中引号部分,使用不像printf一样,输入的时候必须严格按照引号的格式进行输入 LZ在引号中添加了逗号,则在输入的时候,每个数字之间必须用逗号进行分割,不能使用空格
gsxab 2016-05-15
  • 打赏
  • 举报
回复
同意2L观点,如果不用逗号,在读入a以后scanf出错,所以b和c保持分配时的内存内容没有改变,如果比a小就会这样。
程序老小白 2016-05-15
  • 打赏
  • 举报
回复
引用 2楼paschen 的回复:
输入的时候要用逗号分隔:34,455,3444 或者你把scanf("%d,%d,%d",&a,&b,&c); 改成 scanf("%d%d%d",&a,&b,&c);
正解,原来是这问题,谢谢
程序老小白 2016-05-15
  • 打赏
  • 举报
回复
引用 5楼gsxab 的回复:
同意2L观点,如果不用逗号,在读入a以后scanf出错,所以b和c保持分配时的内存内容没有改变,如果比a小就会这样。
嗯嗯,谢谢,涨知识了
大有小成 2016-05-15
  • 打赏
  • 举报
回复
3说的有道理哦
qq_34998860 2016-05-14
  • 打赏
  • 举报
回复
3lou 正解!
青衫丶 2016-05-14
  • 打赏
  • 举报
回复
这应该是编译器的问题吧。我在linux上编译 结果是对的 [root@localhost linuxshare]# ./a.out 输入a,b,c:1,2,3 max=3
paschen 2016-05-14
  • 打赏
  • 举报
回复
输入的时候要用逗号分隔:34,455,3444 或者你把scanf("%d,%d,%d",&a,&b,&c); 改成 scanf("%d%d%d",&a,&b,&c);
程序老小白 2016-05-14
  • 打赏
  • 举报
回复
哪位好心人,帮我看看

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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