我们可以创建数组,利用冒泡排序法把数组进行排序,但是当元素过多时候循环可能过多导致循环超限
所以我们可以换种其他方法,代码附上
#include<stdio.h>
int main()
{int n,i;puts("输入这组数据的个数");scanf("%d",&n);int arr[n+1];puts("请输入每个数的值");for(i=1;i<=n;i++){scanf("%d",&arr[i]);}int max=arr[1];for(int k=2;k<=n;k++){if(arr[k]>max){max=arr[k];}}int num=arr[1];for(int m=2;m<=n;m++){if(arr[m]>num&&arr[m]<max){num=arr[m];}}printf("最大值是%d\n",max);printf("第二大的值是%d\n",num);return 0;
}
我们只需要一直比较,首先求出数组最大值,那么其他的元素都小于等于最大值,我们只需要求出其他元素的最大值就OK了,当然此方法还是只能求第n大的值(n很小),当n很大时这个方法还是要舍弃的