我们可以创建数组,利用冒泡排序法把数组进行排序,但是当元素过多时候循环可能过多导致循环超限
所以我们可以换种其他方法,代码附上
#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很大时这个方法还是要舍弃的