① (c语言)求最大、次大、最小和次小值
#include<stdio.h>
#define N 20
int main()
{
int A[N][2];
int *max,*nmax,*min,*nmin;
int n;
printf("整数的个数:");
scanf("%d",&n);
int i;
for(i=0;i<n;++i)
{
printf("第%d个数:",i+1);
scanf("%d",A+i);
printf("序号:");
scanf("%d",A[i]+1);
}
printf("输入结束\n");
max=min=nmax=nmin=A[0];
for(i=1;i<n;++i)
{
if(A[i][0]>*max)
{
nmin=max=A[i];
continue;
}
if(A[i][0]<*min)
{
nmax=min=A[i];
continue;
}
}
for(i=0;i<n;++i)
{
if(A[i][0]<*max&&A[i][0]>*nmax)
{
nmax=A[i];
}
if(A[i][0]>*min&&A[i][0]<*nmin)
{
nmin=A[i];
}
}
printf("\n最大值:%d,序号:%d\n",*max,*(max+1));
if(*max==*nmax)
printf("没有次大值\n");
else
printf("次大值:%d,序号:%d\n",*nmax,*(nmax+1));
printf("最小值:%d,序号:%d\n",*min,*(min+1));
if(*min==*nmin)
printf("没有次小值\n");
else
printf("次小值:%d,序号:%d\n",*nmin,*(nmin+1));
return 0;
}
② C语言,求数组中的最大值和次大值
#include "stdio.h"
int main(void)
{
int str[10]={1,2,3,4,5,6,7,8,9,10};
int i=sizeof(str);
int max0=0;//最大值
int max1=0;//次大值
for(i=0;i<10;i++)
{
if(str[i]>max0)max0=str[i];
else if(str[i]>max1)max1=str[i];
}
system("pause");
return 0;
}
③ 从键盘上输入10个整数,求其中最大值和次大值,用c语言怎么做
main()
{
int max,max2 ,a[10],i;
for (i=0;i<10;i++)
{ scanf("%d",a[i]);}
max=a[0];
for(i=1;i<10;i++)
{
max=max<a[i]?a[i]:max;
}
for(i=0;i<10;i++)
{if(max2>a[i]&&max2<max)
max2=a[i];
}
}
④ C语言如何求次大值
简单的办法就是遍历啊,第一遍找到最大值,然后将最大值剔除或者做上标记,然后遍历第二遍找剩余数的最大值,那么找到的就是次大值了。