| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 840 人关注过本帖
标题:又是这个程序把我干掉了(新手求教)
只看楼主 加入收藏
b137109266
Rank: 1
等 级:新手上路
帖 子:19
专家分:1
注 册:2011-6-16
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:14 
又是这个程序把我干掉了(新手求教)
我知道一味的发求助帖似乎是懒惰的表现,但是这个问题我已经思考了将近1个小时了
谭浩强书中的例题 例1.3 求两个数字较大者的程序 如下
程序代码:
#include<stdio.h>
int max(int x, int y);

//主函数
int main()
//定义主函数
{
//主函数体开始
    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);
}

我运行了一下,不管输入什么样的整数数字 max总是等于 我输入的第一个数!!!!!!
搜索更多相关主题的帖子: color 
2011-06-18 09:44
b137109266
Rank: 1
等 级:新手上路
帖 子:19
专家分:1
注 册:2011-6-16
收藏
得分:0 
例题中的运行结果为
输入 8 5   得到max=8




可是我输入 5 8 却得到 max=5        这不是坑爹么
2011-06-18 09:47
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:5 
int max(int a, int b) {
    return a > b ? a : b;
}

My life is brilliant
2011-06-18 09:48
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:0 
scanf("%d,%d",&a,&b)    // 既然有',',输入的时候为什么没有呢?这不是坑爹么

My life is brilliant
2011-06-18 09:49
loveshuang
Rank: 9Rank: 9Rank: 9
来 自:湖北武汉
等 级:蜘蛛侠
帖 子:270
专家分:1198
注 册:2010-11-14
收藏
得分:5 
            注意你的scanf里面的格式符,两个%d之间有逗号所以你在输入整数的时候就要按照你scanf里面的东西原样输入,格式符之间没有符号的时候输入整数就可以用空格、回车、TAB分开整数的读入。去掉里面的逗号或者你输入的时候两个数之间不用空间用逗号分开就OK了。这个注意下就OK。。。
2011-06-18 09:49
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:5 
scanf("%d,%d",&a,&b); 别忘了把逗号输进去

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-06-18 09:50
b137109266
Rank: 1
等 级:新手上路
帖 子:19
专家分:1
注 册:2011-6-16
收藏
得分:0 
昨天晚上因为这个程序的标点问题已经抓狂了,今天早上解决标点问题以后又被函数本身干掉
2011-06-18 09:51
b137109266
Rank: 1
等 级:新手上路
帖 子:19
专家分:1
注 册:2011-6-16
收藏
得分:0 
谢谢各位,我终究还是被标点干掉了
2011-06-18 09:52
pkwangxinjun
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:45
专家分:170
注 册:2010-8-29
收藏
得分:5 
不是你函数写的问题 而是你的输入函数scanf()有问题  
#include<stdio.h>
int max(int x, int y);

//主函数
int main()
//定义主函数
{
    //主函数体开始
    int a,b,c;
    scanf("%d",&a);
    scanf("%d",&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);
}
  自己可以单步调试一下看看按你自己的方法  追踪下b的值
2011-06-18 09:55
落叶深蓝色
Rank: 8Rank: 8
来 自:山东
等 级:蝙蝠侠
帖 子:319
专家分:807
注 册:2010-12-8
收藏
得分:0 
以下是引用lz1091914999在2011-6-18 09:48:02的发言:

int max(int a, int b) {
    return a > b ? a : b;
}
这样挺好的
2011-06-18 10:02
快速回复:又是这个程序把我干掉了(新手求教)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.090771 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved