| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2284 人关注过本帖
标题:我自己写的很复杂,有没有更简便的写法
只看楼主 加入收藏
qweiuy566
Rank: 2
等 级:论坛游民
帖 子:48
专家分:19
注 册:2016-1-27
结帖率:75%
收藏
已结贴  问题点数:6 回复次数:19 
我自己写的很复杂,有没有更简便的写法
题目:有三个整数a,b,c,由键盘输入,输出其中最大的数。
#include<stdio.h>
int main()
{
    int a,b,c;
    printf("请输入三个整数:\n");
    scanf("%d%d%d",&a,&b,&c);
    if(a>b)
    {
        if(a>c)
        printf("您输入的最大数为%d",a);
        else
        printf("您输入的最大数为%d",c);
    }
    else
    {
        if(b>c)
        printf("您输入的最大数为%d",b);
        else
        printf("您输入的最大数为%d",c);
    }
    return 0;
}
搜索更多相关主题的帖子: 最大的 return 键盘 
2016-01-31 18:00
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
有,自己再想想,不急。

授人以渔,不授人以鱼。
2016-01-31 18:00
qweiuy566
Rank: 2
等 级:论坛游民
帖 子:48
专家分:19
注 册:2016-1-27
收藏
得分:0 
这次写的感觉更长了
#include<stdio.h>
int main()
{
    int max(int x,int y,int z);
    int a,b,c,d;
    printf("请输入三个整数:\n");
    scanf("%d%d%d",&a,&b,&c);
    d=max(a,b,c);
    printf("三个数中最大的数是%d",d);
    return 0;
}
int max(int x,int y,int z)
{
    int n;
    if(x>y)
    {
        if(x>z)n=x;
        else   n=z;
    }
    else
    {
        if(y>z)n=y;
        else   n=z;
        return(n);
    }
}

吾道不孤
2016-01-31 18:13
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:5 
提示:
1.用循環
2.不需要寫函數

關鍵點:每輸入一次,就提取出最大値!循環用於輸入,而不是用於篩選最大値,不管多少個數,都一趟循環了事。

授人以渔,不授人以鱼。
2016-01-31 18:15
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:1 
從一個籃子中挑鷄蛋:首先挑一個,放在一邊,然後挑第二個,與放在外面的比較,符合要求則取代之,一直把籃子的鷄蛋都翻個遍,最後在外面的就是所要的。這個方法,不管是找最大値,還是最小値,或是任何其他要求的元素,是單獨找,還是同時找,都是一趟掃描,不需要什麽複雜的算法。

[此贴子已经被作者于2016-1-31 18:32编辑过]


授人以渔,不授人以鱼。
2016-01-31 18:20
qweiuy566
Rank: 2
等 级:论坛游民
帖 子:48
专家分:19
注 册:2016-1-27
收藏
得分:0 
回复 5楼 TonyDeng
#include<stdio.h>
int main()
{
    int i,str[3],max=0;
    for(i=0;i<3;i++)
    {
        printf("请输入:\n");
        scanf("%d",&str[i]);
        if (max<str[i])
        max=str[i];
    }
    printf("您输入的最大的数是%d",max);
    return 0;
}
不明白为什么输出的数不对,每次都多48

[此贴子已经被作者于2016-1-31 19:12编辑过]


吾道不孤
2016-01-31 18:58
qweiuy566
Rank: 2
等 级:论坛游民
帖 子:48
专家分:19
注 册:2016-1-27
收藏
得分:0 
回复 5楼 TonyDeng
哦,没问题了,刚才%后面写错了,谢谢版主。

吾道不孤
2016-01-31 19:12
jklqwe111
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:35
帖 子:336
专家分:1135
注 册:2014-4-13
收藏
得分:0 
楼主6楼代码真没问题吗,我看未必,如果所输入的3个数是负数结果如何呢?
2016-01-31 20:00
qweiuy566
Rank: 2
等 级:论坛游民
帖 子:48
专家分:19
注 册:2016-1-27
收藏
得分:0 
回复 8楼 jklqwe111
确实不行,那负数这个问题应该怎么处理啊,有没有解决的办法?

吾道不孤
2016-02-02 18:24
wengbin
Rank: 10Rank: 10Rank: 10
来 自:陕西西安
等 级:贵宾
威 望:19
帖 子:370
专家分:1846
注 册:2015-5-8
收藏
得分:0 
若要找最大值,将max设为一个非常小的数,如-1000000。反之将其设为10000000,或者将其设为待比较的第一个元素,从第二个待比元素开始比。第二个方法应该更好
2016-02-02 18:30
快速回复:我自己写的很复杂,有没有更简便的写法
数据加载中...
 
   



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

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