| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1206 人关注过本帖
标题:编程问题4
只看楼主 加入收藏
redalert
Rank: 1
等 级:新手上路
帖 子:103
专家分:0
注 册:2005-2-4
收藏
 问题点数:0 回复次数:14 
编程问题4
谭爷爷的《C程序设计》中的P12页第6题
#include<stdio.h>
main()
{
int a,b,c,d;
printf("please key in 3 number for checking:\n");
scanf("%d,%d,%d",a,b,c);
d=max(a,b,c);
printf("the max one is%d",d);
getch();
}
int max(int x, int y, int z)
{int w;
  if (x>y)
    if (z>x) w=z;
    else w=x;
  else
    if (z>y) w=y;
    else w=z;
    return(w);
}
我想了一天了,也没有正确答案。郁闷,不好意思,很弱智的问题,嬉笑之余还请不吝赐教。谢谢。
搜索更多相关主题的帖子: int max else checking 程序设计 
2005-02-06 22:01
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 
不知道你想干什么?

九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2005-02-06 23:44
redalert
Rank: 1
等 级:新手上路
帖 子:103
专家分:0
注 册:2005-2-4
收藏
得分:0 
谭爷爷的书上的题啊,输入三个数比较大小。请各位指点以下吧,刚学编程就受到打击,心里承受力太差了!

能学多少是多少,不学是傻瓜!
2005-02-07 09:04
卧龙先生
Rank: 1
等 级:新手上路
帖 子:77
专家分:0
注 册:2004-7-18
收藏
得分:0 

你的程序是错的

#include<stdio.h> main() { int a,b,c,d; printf("please key in 3 number for checking:\n"); scanf("%d,%d,%d",a,b,c); ---> 应该是 scanf("%d,%d,%d",&a,&b,&c); d=max(a,b,c); printf("the max one is%d",d); getch(); } int max(int x, int y, int z) {int w; if (x>y) if (z>x) w=z; else w=x; else if (z>y) w=y; ---> 应该是 if (z>y) w=z; else w=z; ---> 应该是 else w=y; return(w); }


我是一只小小小小菜鸟!!
2005-02-07 18:39
redalert
Rank: 1
等 级:新手上路
帖 子:103
专家分:0
注 册:2005-2-4
收藏
得分:0 
谢谢您!

能学多少是多少,不学是傻瓜!
2005-02-08 08:41
海天一线
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2005-2-8
收藏
得分:0 
#include&lt;stdio.h&gt;
main()
{
int a,b,c,d;
printf("please key in 3 number for checking:\n");//随便输入3个数
scanf("%d,%d,%d",&amp;a,&amp;b,&amp;c);//读入
d=max(a,b,c);//MAX为自定义的函书数,用来比较大小
printf("the max one is%d",d);
getch();
}
int max(int x, int y, int z)//下面是在交换,使得D最大
{int w;
  if (x&gt;y)
    if (z&gt;x) w=z;
    else w=x;
  else
    if (z&gt;y) w=y;
    else w=z;
    return(w);//返回W这个值,上面D=W
}
我也是初学者,多多指教
2005-02-08 09:35
redalert
Rank: 1
等 级:新手上路
帖 子:103
专家分:0
注 册:2005-2-4
收藏
得分:0 
发现一个有趣的现象,在printf("please key in 3 number for checking:\n");中,在调试时,如果输入一个数按回车,则显示: the max one is 12830.
这是什么原因呢?
如果想达到上述目的(即输入一个数-回车-再输入-再回车...)应该怎么样改写代码呢?

能学多少是多少,不学是傻瓜!
2005-02-08 09:42
pgboy_992
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2005-1-17
收藏
得分:0 
那是因为你只输入了一个数,后面两个数还没有初始化是一个随机数。
所以才会出现:the max one is 12830.

把scanf("%d,%d,%d",&amp;a,&amp;b,&amp;c); 改成scanf("%d%d%d",&amp;a,&amp;b,&amp;c);就可以了
2005-02-08 10:33
redalert
Rank: 1
等 级:新手上路
帖 子:103
专家分:0
注 册:2005-2-4
收藏
得分:0 
书上说,引号中的内容按原格式输出,书上错了

能学多少是多少,不学是傻瓜!
2005-02-08 12:41
Antigloss
Rank: 1
等 级:新手上路
帖 子:109
专家分:0
注 册:2004-12-30
收藏
得分:0 
谭浩强的书错漏百出。。。建议看The C Programming Language(Second Edition)C程序设计语言第二版
2005-02-08 17:31
快速回复:编程问题4
数据加载中...
 
   



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

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