数组中输入5个整数,输出最大和第二大元素的下标,并输出相应的元素的值

如题所述

第1个回答  2010-10-10
#include<stdio.h>
#define N 5
int main()
{ int i,x,y;
int a[N];
for(i=0;i<N;i++)
scanf("%d",&a[i]);
x=y=0;
for(i=0;i<N;i++)
if(a[x]<a[i])x=i;
for(i=0;i<N && i!=x;i++)
if(a[y]<a[i]) y=i;
printf("%d\n%d\n",x+1,a[x]);
printf("%d\n%d\n",y+1,a[y]);
return 0;
}本回答被提问者采纳
第2个回答  2010-10-08
void BubbleSort(int* data, int len)
{
int swap;
for(int i=0;i<5;i++)
{
for(int j=0;j< len - i-1;j++)
{
if( data[j]>data[j+1])
{
swap=data[j];
data[j]=data[j+1];
data[j+1]=swap;
}
}
}
}
int _tmain(int argc, _TCHAR* argv[])
{
int iArray[5] = {5,8,2,4,9};
int iArrayTemp[5] = {0};
for (int i=0; i< 5; i++)
{
iArrayTemp[i] = iArray[i];
}
BubbleSort(iArrayTemp, 5);

for (int k=0; k<5; k++)
{
if (iArray[k] == iArrayTemp[4])
{
printf("%s%d%s%d\n", "最大数下标:",k ,",数值:", iArray[k]);
for (int j = 0; j<5; j++)
{
if (iArray[j] == iArrayTemp[3])
{
printf("%s%d%s%d", "第二大数下标:",j ,",数值:", iArray[j]);
}
}
}
}
return 0;
}
第3个回答  2010-10-08
#include<stdio.h>
int main()
{
int a[5],i,max,min;
for(i=0;i<5;i++)
scanf("%d",&a[i]);
max=0;
min=0;
for(i=0;i<5;i++)
if(a[i]>a[max])
max=i;
min=(max+1)%5;
for(i=0;i<5;i++)
if(a[i]>a[min]&&i!=max)
min=i;
printf("%d %d %d %d\n",max+1,a[max],min+1,a[min]);
//max代表最大数的位置,min代表第二大数的位置
}
相似回答