| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 434 人关注过本帖
标题:三目运算计算最大最小
只看楼主 加入收藏
Kevin姜
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2012-10-27
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:7 
三目运算计算最大最小
用三目运算怎么写5个数的最大和最小?
int i,j,k,l,n,m;
2013-06-20 00:06
韶志
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:斗气大陆
等 级:贵宾
威 望:44
帖 子:2223
专家分:13592
注 册:2013-3-22
收藏
得分:3 
因为是多个数的比较   所以用递归实现比较方便,下面的红色部分就是三目运算,我的程序100个数之内都能比较,可以满足你的五个数

#include<stdio.h>
int max(int [],int);
int min(int [],int);
main()
{
    int i,n,a[100];
    printf("请输入你想比较多少个数!\n");
    scanf("%d",&n);
    printf("请输入数据!\n");
    for(i=0;i<n;i++)
        scanf("%d",&a[i]);
    printf("最大值为: %d\n",max(a,n-1));
    printf("最小值为: %d\n",min(a,n-1));
    return 0;
}

int max(int a[],int n){
    if(n<=0)
        return a[n];
    else
        return a[n]>max(a,n-1)?a[n]:max(a,n-1);
}

int min(int a[],int n){
    if(n<=0)
        return a[n];
    else
        return a[n]<min(a,n-1)?a[n]:min(a,n-1);
}

三十年河东,三十年河西,莫欺少年穷!
2013-06-20 01:48
蚕头燕尾
Rank: 10Rank: 10Rank: 10
来 自:Gryffindo
等 级:贵宾
威 望:12
帖 子:734
专家分:1546
注 册:2013-3-24
收藏
得分:3 
学习了。。这里都用到递归,真心不错~~


我的第一反应是,数据量小,所以逐步实现。

佩服楼上的~~



学习编程,为的是表达自己的思想,而不是被别人的思想所禁锢。要先明白自己想干嘛,而不要先问别人让你干嘛。               

                                                                                                                    Black Cat      Hello Tomorrow~
2013-06-20 01:59
Kevin姜
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2012-10-27
收藏
得分:0 
回复 2楼 韶志
min=e<(d<(c<(g<b?g:b)?c:(g<b?g:b))?d:(c<(g<b?g:b)?c:(g<b?g:b)))?e:(d<(c<(g<b?g:b)?c:(g<b?g:b))?d:(c<(g<b?g:b)?c:(g<b?g:b)));
max=e>(d>(c>(g>b?g:b)?c:(g>b?g:b))?d:(c>(g>b?g:b)?c:(g>b?g:b)))?e:(d>(c>(g>b?g:b)?c:(g>b?g:b))?d:(c>(g>b?g:b)?c:(g>b?g:b)));


我这样如何?
2013-06-20 13:00
韶志
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:斗气大陆
等 级:贵宾
威 望:44
帖 子:2223
专家分:13592
注 册:2013-3-22
收藏
得分:0 
回复 4楼 Kevin姜
没仔细看了  如果代码没问题的话可以这么写,其实思想也是递归,不过看起来很繁琐
这是数据少的原因可以这样写,如果是比较10个、20个呢?
所以不提倡你这种写法

三十年河东,三十年河西,莫欺少年穷!
2013-06-20 13:58
韶志
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:斗气大陆
等 级:贵宾
威 望:44
帖 子:2223
专家分:13592
注 册:2013-3-22
收藏
得分:0 
回复 3楼 蚕头燕尾
说不上佩服    就是简单的递归
弄明白它的结构写代码就几分钟的事情

三十年河东,三十年河西,莫欺少年穷!
2013-06-20 14:00
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:3 
我想说点什么呢,相比2楼,我更推荐4楼的做法

递归是要开辟空间的,太耗费空间,所以理论上4楼的效率更高

4楼的代码相对直接有效,不过也还有些问题,也就是 5楼提出的问题

总的来说呢,这道题用递推再合适不过,给楼上一个建议,能递推绝不用递归


[fly]存在即是合理[/fly]
2013-06-20 14:38
韶志
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:斗气大陆
等 级:贵宾
威 望:44
帖 子:2223
专家分:13592
注 册:2013-3-22
收藏
得分:0 
回复 7楼 azzbcc
多谢指点~   但我并不是按照楼主的意思仅仅只能输入5个数,如果那样不用递归很直接能得出结果
我的程序扩张了,输入多少数据自己定  所以当然首选递归

三十年河东,三十年河西,莫欺少年穷!
2013-06-20 15:11
快速回复:三目运算计算最大最小
数据加载中...
 
   



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

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