找出一个数组里的次大和次小数!

来源:百度知道 编辑:UC知道 时间:2024/05/04 05:11:21
我些的程序:#include<stdio.h>
#define N 5
void main(void)
{ int a[N];
int max,min;
int maxc,minc;
int i,j=0;
printf("input the numbers:\n");
for(i=0;i<N;i++)
{
scanf("%d",&a[i]);
}
max=min=a[0];
maxc=minc=a[1];
i=0;
while(i<N)
{
if(max<a[i])
{
maxc=max;
max=a[i];
}
if(max>a[i])
{
if(maxc<a[i])
{
maxc=a[i];
}
}
i++;
}
while(j<N)
{
if(min>a[j])
{
minc=min;
min=a[j];
}
if(min<a[j])
{
if(minc>a[j])
{
minc=a[j];
}
}
j++;
}
printf("output

#include<stdio.h>
#define N 5
void main(void)
{
int a[N];
int max,min;
int maxc,minc;
int i,j=0;
printf("input the numbers:\n");
for(i=0;i<N;i++)
{
scanf("%d",&a[i]);
}
max=min=a[0];
maxc=minc=a[1];
i=0;
while(i<N)
{
if(max<a[i])
{
maxc=max;
max=a[i];
}
else if(max>a[i])
{
if(maxc<a[i])
{
maxc=a[i];
}
}
else if(maxc==max)//在这里加个条件就可以了,maxc与max相等的情况要考虑
{
maxc=a[i+1];
}

i++;
}
while(j<N)
{
if(min>a[j])
{
minc=min;
min=a[j];
}
if(min<a[j])
{
if(minc>a[j])
{
minc=a[j];
}
}
else if(minc==min)//这里和上面一样
{
minc=a[i+1];
}