找最二大的数
#include <stdio.h>
#include<stdlib.h>
#include<time.h>
int n,*a,max,min;
int second(int n){
if(n==2){
if(a[n-2]>a[n-1]){
max=a[n-2];
min=a[n-1];
}
else{
max=a[n-1];
min=a[n-2];
}
return min;
}
else{
second(n-1);
if(a[n-1]>max){
min=max;
max=a[n-1];
}
if(a[n-1]<max&&a[n-1]>min) {
min=a[n-1];
}
return min;
}
return 0;
}
void main(){
printf("请确定要产生多少个随机数(2-100):");
scanf("%d",&n);
for(int s=0;s<n;s++){
a=(int*)malloc(n*sizeof(int));
}
srand((int)time(0));
for(int i=0;i<n;i++){
int b=rand()%500;
a[i]=b;
}
for(int j=0;j<n;j++){
if(j%5==0)
printf("\n");
printf("%d\t",a[j]);
}
printf("\n");
int t=second(n);
printf("第二大数为:%d\n",t);
}
运行结果如下图所示:
