本文主要是介绍1954: 奇怪的最大值,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1954: 奇怪的最大值
1.描述
三金这周上机课的时候考察了一下求三个数最大值这个问题,没想到有一大半人都不会,幸好在他的帮助下大家算是基本解决了这个问题,于是他想测试一下这帮人到底掌握的怎么样了。 他想在一组数中找一个数,这个数可以不是这组数中的最大的,但是要是相对比较大的,但是满足这个条件的数太多了,怎么办呢?他想到了一个比较损的办法,把这一组数从开始把每相邻三个数分成一组(组数是从1开始),奇数组的求最大值,偶数组的求最小值,然后找出这些值中的最大值。
输入
多组实例测试 每组测试数据首先一个N(N一定为3的倍数),表示总共有多少个数。
输出
输出这些值中的最大值
样例输入
3
1 3 5
6
1 2 3 5 7 9
样例输出
5
5
提示
多看看题!!!
2.代码
#include<stdio.h>
#include<string.h>
int main()
{int n,i,j,x;while(~scanf("%d",&n)){int t=n/3,k=1,a[1001],max[1001]= {0},min[1001]= {0};while(t--){for(i=1; i<=3; i++){scanf("%d",&a[i]);if(i==1&&k%2!=0){max[k]=a[1];}if(i==1&&k%2==0){min[k]=a[1];}if(k%2!=0){max[k]=a[i]>max[k]?a[i]:max[k];}else{min[k]=a[i]<min[k]?a[i]:min[k];}}if(k==1){x=max[k];}x=max[k]>x?max[k]:x;x=min[k]>x?min[k]:x;k++;}printf("%d\n",x);}return 0;
}
代码2
#include<stdio.h>
int main()
{int n,m,i;while(~scanf("%d",&n)){int a[n],b[n];for(i=1;i<=n;i++){scanf("%d",&a[i]);}int j=1,max;for(i=1;i<=n;i=i+3){if(j%2!=0){b[j]=a[i]>a[i+1]?a[i]:a[i+1];b[j]=b[j]>a[i+2]?b[j]:a[i+2];max=b[1];if(b[j]>max)max=b[j];}else{b[j]=a[i]<a[i+1]?a[i]:a[i+1];b[j]=b[j]<a[i+2]?b[j]:a[i+2];if(b[j]>max)max=b[j];}j++;}printf("%d\n",max);}}
这篇关于1954: 奇怪的最大值的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!