鱼C论坛

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

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

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

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

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

x
#include <stdio.h>
int max(int a, int b);
main()
{
        int x, y, z;
        int max(int a, int b);
        printf("input two numbers:\n");
        scanf("%d%d",&x, &y);
        z = max(x, y);
        printf("maxmum = %d", z);
}
int max(int a, int b)
{
        if(a>b)return a;else return b;
}
1.png 2.png 我用的是Dev-C++,下边也没有提示报错,我输入9,5它就会输出9,我输入5,9他就会输出5,根本没有起到输出最大值的作用,求教代码哪里出了问题!
最佳答案
2021-3-14 20:46:05
重新编译下,dev对于代码细微的改动是不会管的
屏幕截图 2021-03-14 204451.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-3-14 19:18:13 | 显示全部楼层
代码没问题啊,你这不就是输出最大值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

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

输入的时候加个空格

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


scanf的返回值==2也可以验证
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 0 反对 1

使用道具 举报

发表于 2021-3-14 19:29:29 | 显示全部楼层
不推荐逗号是英文中英文可能不一样
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-14 19:29:53 | 显示全部楼层
我用的VC++6.0是OK的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

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

使用道具 举报

发表于 2021-3-14 19:34:57 From FishC Mobile | 显示全部楼层
你输入的时候输入的是中文逗号,所以不被程序匹配,需要英文逗号或空格或Tab或换行
想知道小甲鱼最近在做啥?请访问 -> 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

求教,我用空格隔开之后,保存完运行还是不对,哈哈哈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

谢谢,但是我这样改完之后还是不对,不知道怎么回事。请看8楼我截了个图
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

它把第一个输入的小数给输出了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

你重新发下你刚才的代码,代码可能有错,截图的返回值错了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-14 20:35:02 | 显示全部楼层
屏幕截图 2021-03-14 203432.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

int max(int a, int b)
{
    if(a>b)return a;
        else return b;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

4.png 我这是把您发的代码复制过去又运行了下,结果非常离谱,哈哈哈我真懵了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

哈哈哈原来是这样!就是这个原因,运行正常了。谢谢!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-22 06:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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