求一个一维数组中第二大的元素,及其在原数组中的下标。
答案:2 悬赏:70
解决时间 2021-01-08 05:24
- 提问者网友:佞臣
- 2021-01-07 18:25
求一个一维数组中第二大的元素,及其在原数组中的下标。
最佳答案
- 二级知识专家网友:人间朝暮
- 2021-01-07 19:35
#include#define N 10//数组中的N个元素
void main()
{
int a[N];
int e,f,j;//e最大数,f第二大的,j第二大的下标
int i;
for(i=0;i {
scanf("%d",&a[i]);
}
if(a[0] {
e=a[1];
f=a[0];
}
else
{
e=a[0];
f=a[1];
}
for(i=2;i {
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 {
if(a[i]==f)
printf("%d\n",i);
}
}
void main()
{
int a[N];
int e,f,j;//e最大数,f第二大的,j第二大的下标
int i;
for(i=0;i
scanf("%d",&a[i]);
}
if(a[0] {
e=a[1];
f=a[0];
}
else
{
e=a[0];
f=a[1];
}
for(i=2;i
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
if(a[i]==f)
printf("%d\n",i);
}
}
全部回答
- 1楼网友:洒脱疯子
- 2021-01-07 20:32
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);
}
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);
}
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯