求一个一维数组中第二大的元素,及其在原数组中的下标。
发布网友
发布时间:2024-10-04 07:37
我来回答
共1个回答
热心网友
时间:2024-10-21 10:47
#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);
}
}
热心网友
时间:2024-10-21 10:41
#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);
}
}