鱼C论坛

 找回密码
 立即注册
查看: 2472|回复: 15

[已解决]求教,为什么运行时max只会输出第一个数

[复制链接]
发表于 2021-3-14 18:54:14 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. #include <stdio.h>
  2. int max(int a, int b);
  3. main()
  4. {
  5.         int x, y, z;
  6.         int max(int a, int b);
  7.         printf("input two numbers:\n");
  8.         scanf("%d%d",&x, &y);
  9.         z = max(x, y);
  10.         printf("maxmum = %d", z);
  11. }
  12. int max(int a, int b)
  13. {
  14.         if(a>b)return a;else return b;
  15. }
复制代码

1.png 2.png 我用的是Dev-C++,下边也没有提示报错,我输入9,5它就会输出9,我输入5,9他就会输出5,根本没有起到输出最大值的作用,求教代码哪里出了问题!
最佳答案
2021-3-14 20:46:05
重新编译下,dev对于代码细微的改动是不会管的
屏幕截图 2021-03-14 204451.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-3-14 19:18:13 | 显示全部楼层
代码没问题啊,你这不就是输出最大值
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-14 19:27:32 | 显示全部楼层
scanf("%d%d",&x, &y);

改成  scanf("%d %d",&x, &y);

输入的时候加个空格

否则你输入的两个数被第一个%d匹配了 第二个%d匹配失败


scanf的返回值==2也可以验证
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 0 反对 1

使用道具 举报

发表于 2021-3-14 19:29:29 | 显示全部楼层
不推荐逗号是英文中英文可能不一样
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-14 19:29:53 | 显示全部楼层
我用的VC++6.0是OK的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-14 19:32:43 | 显示全部楼层
本帖最后由 baige 于 2021-3-14 19:34 编辑

scanf -- 格式化输入
空白字符:该函数将读取并忽略空白字符(空白字符包含空格、回车和制表符);
除了格式占位符(% 开头)外的非空白字符:指定函数必须从输入流中读取到的字符,如果读取不匹配,则函数调用失败,并从匹配失败处截断输入流;
你的scanf("%d%d",&x.&y);输入的时候不需要加,加了之后读取不匹配,则函数调用失败,并从匹配失败处截断输入流;
这样输入就行:
2 3
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-14 19:34:57 From FishC Mobile | 显示全部楼层
你输入的时候输入的是中文逗号,所以不被程序匹配,需要英文逗号或空格或Tab或换行
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-3-14 20:22:25 | 显示全部楼层
kogawananari 发表于 2021-3-14 19:27
scanf("%d%d",&x, &y);

改成  scanf("%d %d",&x, &y);

656ENF67%IILF~MD4TX_A}2.png PY`E7S(WOC`$Z12XR_JJ}JT.png

求教,我用空格隔开之后,保存完运行还是不对,哈哈哈
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-3-14 20:24:05 | 显示全部楼层
baige 发表于 2021-3-14 19:32
scanf -- 格式化输入
空白字符:该函数将读取并忽略空白字符(空白字符包含空格、回车和制表符);
除了 ...

谢谢,但是我这样改完之后还是不对,不知道怎么回事。请看8楼我截了个图
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-3-14 20:25:05 | 显示全部楼层
一枚丶学渣 发表于 2021-3-14 19:18
代码没问题啊,你这不就是输出最大值

它把第一个输入的小数给输出了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-14 20:32:59 | 显示全部楼层
Amarantos 发表于 2021-3-14 20:25
它把第一个输入的小数给输出了

你重新发下你刚才的代码,代码可能有错,截图的返回值错了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-14 20:35:02 | 显示全部楼层
屏幕截图 2021-03-14 203432.png
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-14 20:36:13 | 显示全部楼层
  1. #include <stdio.h>
  2. int max(int a, int b);
  3. main()
  4. {
  5.     int x, y, z;
  6.     int max(int a, int b);
  7.     printf("input two numbers:\n");
  8.     scanf("%d %d",&x, &y);
  9.     z = max(x, y);
  10.     printf("maxmum = %d", z);
  11.     return 0;
  12. }

  13. int max(int a, int b)
  14. {
  15.     if(a>b)return a;
  16.         else return b;
  17. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-3-14 20:42:07 | 显示全部楼层

4.png 我这是把您发的代码复制过去又运行了下,结果非常离谱,哈哈哈我真懵了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-14 20:46:05 | 显示全部楼层    本楼为最佳答案   
重新编译下,dev对于代码细微的改动是不会管的
屏幕截图 2021-03-14 204451.png
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-3-14 20:49:19 | 显示全部楼层
baige 发表于 2021-3-14 20:46
重新编译下,dev对于代码细微的改动是不会管的

哈哈哈原来是这样!就是这个原因,运行正常了。谢谢!!!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-30 21:20

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表