求一个一维数组中第二大的元素,及其在原数组中的下标。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求一个一维数组中第二大的元素,及其在原数组中的下标。相关的知识,希望对你有一定的参考价值。

已知一个一维数组a[],设计一段程序,要求求出该数组中第二大的元素的值,并且求出该元素在原数组中的下标。

参考技术A #include<stdio.h>#define N 10//数组中的N个元素
void main()

int a[N];
int e,f,j;//e最大数,f第二大的,j第二大的下标
int i;
for(i=0;i<N;i++)//定义一数组

scanf("%d",&a[i]);

if(a[0]<a[1])//给出e,f初值

e=a[1];
f=a[0];

else

e=a[0];
f=a[1];

for(i=2;i<N;i++)//循环判断f的最终值

if(a[i]>=e) f=e;e=a[i];
else if(a[i]>f) f=a[i];

printf("%d\n",f);//输出第二大的数
for(i=0;i<N;i++)//确定并输出下标

if(a[i]==f)
printf("%d\n",i);


本回答被提问者采纳
参考技术B public static void fun_Max2(int[] arr)
int max1, max2;//定义max1 为最大值,max2为第二大
if (arr[0] > arr[1])

max1 = arr[0];
max2 = arr[1];
else
max1 = arr[1];
max2 = arr[0];

for (int i = 0; i < arr.length; i++)
if (max1 < arr[i])
max2 = max1;
max1 = arr[i];
else if (max1 > arr[i])
if (arr[i] > max2)
max2 = arr[i];



System.out.println("max2= " + max2);

delphi中能不能把一维数组作为一个元素赋值给另外一个数组?

我定义了六个一维数组arr1,arr2..arr6,里面存的是rgb值,它们长度不同。同时有六个checkbox,36个shape(每六个一组)。现在我想根据checkbox选中与否决定调用哪个数组来给shape赋颜色值,比如说有两个checkbox被选中,那就用对应的两个数组给前两层shape(1-12)赋颜色值。这个怎么实现?我想定义一个动态数组sarr,哪个checkbox选中就把对应的arr作为整体赋值个给它作为一个元素,这样有办法实现吗?

参考技术A 你可以把checkbox和shape都放在数组中,这样就可以依据索引号来创建checkbox与shape的对应关系
比如是checkbox[0-5]

shape[0-35] (当然这里用二维数组也行,看你需要了)

这样对于一个比如说index=2,checkbx[2]就是对应的checkbox,而shape[2*6]至shape[2*6+5]就是对应的shape,循环中就很容易处理了,至于你说的arr1什么的,我不清楚你说的长度不同是什么,一样是可以用二维数组来处理的(当然如果每行的列数可能不同,那也可以用非矩形二维数组)

以上是关于求一个一维数组中第二大的元素,及其在原数组中的下标。的主要内容,如果未能解决你的问题,请参考以下文章

数组a中存放了n个整数,试求出数组中的最大元素和第二大元素的下标,并输出相应元素的值

求数组中第二大的值

求数组中第K个最大的值

用C语言如何将一个一维数组中的元素随机排序

C语言中怎样用指针找出一维数组中的最大值和最小值并输出它们的下标

如果我想改变一个一维数组里边一个元素的值而其他元素不变应该怎样做?