有五个数组,有什么简单的方法可以求他们中最大的元素
有5个数组,有什么简单的方法可以求他们中最大的元素
有5个数组,有什么简单的方法可以求他们中最大的元素,并打印出最大的元素位于哪个数组中的哪个位置。
------解决方案--------------------
可以。肯定是要遍历所有的元素后才知道最大值的。
------解决方案--------------------
仅供参考。
有5个数组,有什么简单的方法可以求他们中最大的元素,并打印出最大的元素位于哪个数组中的哪个位置。
------解决方案--------------------
可以。肯定是要遍历所有的元素后才知道最大值的。
------解决方案--------------------
仅供参考。
- C/C++ code
#include <stdio.h> #define sz(a) sizeof(a)/sizeof(*a) int max(int a[],int* pos,int size)//pos为输出参数,带出最大值的位置 { int i,max=0; for(i=1;i<size;i++) { if(a[i]>a[max]) { max=i; } } *pos=max; return a[max]; } int main(void) { int arr1[5]={1,3,5,2,4}; int arr2[3]={11,23,45}; int arr3[3]={33,99,88}; int arr4[3]={-11,20,30}; int arr5[4]={100,40,60,90}; int i; int* arrptr[5]={arr1,arr2,arr3,arr4,arr5};//保存每个数组的首地址 int size[5]={sz(arr1),sz(arr2),sz(arr3),sz(arr4),sz(arr5)};//保存每个数组大小 int maxPos[5]={0};//保存每个数组最大值的位置 int resPos=0;//保存最后求出的所有数组中的最大值所在的位置 int maxValue=arr1[0];//初始化最大值 int maxArr=1;//初始化包含最大值的数组 for(i=0;i<5;i++) { int temp=max(arrptr[i],&maxPos[i],size[i]); if(temp>maxValue) { maxValue=temp; maxArr=i+1; resPos=maxPos[i]+1; } } printf("最大的数值是%d,它在第%d个数组的第%d个位置\n",maxValue,maxArr,resPos); getchar(); return 0; }
------解决方案--------------------
每个数组快排,比较5 个最大值(快排第6个数组)
------解决方案--------------------
遍历一遍,记录下最大的所在以及位置就可以了
------解决方案--------------------
遍历一下,记下最大值就行了
------解决方案--------------------
遍历一遍,不就行了?
------解决方案--------------------
先写在一个大的数组中,然后遍历一次
------解决方案--------------------
无论什么方法,都至少需要遍历一次。
------解决方案--------------------
遍历吧
如果要找出最大,第二大,第三大……的话,那就快排……