C语言求最大值 次大值

来源:百度知道 编辑:UC知道 时间:2024/05/22 00:38:22
C语言求最大值 次大值
不用排序方法
两位的算法好象都不够严密.换下数字方法就不行了.

#include <stdio.h>
void max(int a[],int n,int *pmax1,int *pmax2)
{
int i;
*pmax1=*pmax2=a[0]; // 初始值为第一个元素
for(i=1;i<n;i++) //循环整个数组
{
if(a[i]>*pmax1) {*pmax2= *pmax1;*pmax1=a[i]; } //如果当前数比最大数大,赋给最大数
else if(a[i]>*pmax2) *pmax2=a[i]; //如果没有最大数大,比第二大数大,赋给数
}
}

int main (){
int a[6]={2,4,56,23,45},pmax1,pmax2;
max(a,6,&pmax1,&pmax2);
printf("max1=%d,max2=%d\n",pmax1,pmax2);
return 0;
}

#include "stdio.h"
int main(void)
{
int k[50],max,max_1,i,t;
max=0;
max_1=0;

for(i=0;i<50;i++)
{
if(k[i]>max_1) max_1=k[i];
if(max_1>max) {t=max_1;max_1=max;max=t;}
}

printf("max=%d,max_1=%d",max,max_1);//打印最大值和次大值。
return 0;
}

#include <stdio.h>

int x[] = {5,4,6,10,7,9,12,3};

int main()
{
int a,b;//a为次