24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1485  |  回复: 10

780331691

铁虫 (初入文坛)

[求助] 求两个值中最大的值但编写的代码不知道哪里错了,求大神帮忙。

我输入 1,3     得到结果是1,求大神帮我看看
# include<stdio.h>
int main(void)
{  
        int max(int x,int y);

    int a, b, c;
        scanf("%d,%d", &a, &b);
        c=max(a,b);
        printf("max = %d\n", c);
        return 0;
}
int max(int x, int y)
{   int z;
    if(x>y) z = x;
        else    z = y;
        return (z);
}
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
回帖支持 ( 显示支持度最高的前 50 名 )

libralibra

至尊木虫 (著名写手)

骠骑将军

【答案】应助回帖


感谢参与,应助指数 +1
xzhdty: 金币+1, 感谢参与谢谢骠骑将军 2013-09-27 19:16:29
看这句: scanf("%d,%d", &a, &b);
要求输入的时候2个数字用逗号隔开,不能有空格
你输入1, 3比较的就是1和空格,所以1大.
输入1,3可以输出正确答案.
scanf的格式要求非常严格
matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
2楼2013-09-27 16:11:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

johnnyhu

银虫 (初入文坛)

【答案】应助回帖


感谢参与,应助指数 +1
jjdg: 金币+1, 感谢参与 2013-09-27 22:27:19
scanf("%d,%d", &a, &b);
把"%d,%d"中间的逗号去掉就可以了。然后输入的时候打一个空格就可以了。
4楼2013-09-27 21:56:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通回帖

梁宽

铜虫 (小有名气)

【答案】应助回帖


感谢参与,应助指数 +1
xzhdty: 金币+1, 感谢参与 2013-09-27 19:16:42
代码没问题吧。可能是你输入的数据格式不正确

[ 发自小木虫客户端 ]
大一新生,要加油!!
3楼2013-09-27 17:23:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

apple-iphone

铁虫 (小有名气)

【答案】应助回帖


感谢参与,应助指数 +1
jjdg: 金币+1, 感谢参与 2013-09-28 10:25:21
这个很简单的,你把a,b的值在main函数都打印出来。代码肯定没问题的,应该是你输入时候问题,中间1和3之间不能使中文的逗号,因为中文是4个字节,所以,逗号前两个字节是负数,从而输出1
5楼2013-09-28 08:18:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

子墨祭

新虫 (初入文坛)

【答案】应助回帖

感谢参与,应助指数 +1
骚年,函数调用的值传递是单向传递!!!!记住了。

所以 int max(x,y)只是形参的值改变了,但是实参的值并没有变!想要得到改变的值必须用 指针/数组作形参。


另外 求最大值 用选择表达式最佳  
max=a>b?a:b;

希望对你有用
6楼2013-09-28 10:43:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

子墨祭

新虫 (初入文坛)

【答案】应助回帖

骚年我错了~~刚刚开玩笑的~~~~~~~~~这个程序木有错~~~~~~~~~~~~
7楼2013-09-28 10:48:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yanwenhe

银虫 (正式写手)

【答案】应助回帖

感谢参与,应助指数 +1
代码 好像没啥问题  你在仔细检查一下!
媳妇是心灵伴侣,科研是治心良药!
8楼2013-09-30 10:46:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

神韵1206

金虫 (正式写手)


jjdg: 金币+1, 感谢参与 2013-10-01 02:18:28
代码写的很不规范 输入有问题 逗号输入之前按下shift键
keepmoving
9楼2013-09-30 22:26:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

coca_cola_xp

铜虫 (初入文坛)

【答案】应助回帖

#include<stdio.h>
int main(void)
{  
    int max(int x,int y);
    int a, b, c;
    scanf("%d,%d", &a, &b);
    c=max(a,b);
    printf("max = %d\n", c);
    return 0;
}
int max(int x, int y)
{   int z;
    if(x>y) z = x;
        else   
              z = y;
    return (z);
}
你在输入的时候输入:1,3然后回车或者输入:3,1回车。然后你会看见你期望的结果
10楼2013-10-01 12:54:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 780331691 的主题更新
信息提示
请填处理意见