【c】求一组数据的最大值和第二大的值

我们可以创建数组,利用冒泡排序法把数组进行排序,但是当元素过多时候循环可能过多导致循环超限

所以我们可以换种其他方法,代码附上

#include
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]

我们只需要一直比较,首先求出数组最大值,那么其他的元素都小于等于最大值,我们只需要求出其他元素的最大值就OK了,当然此方法还是只能求第n大的值(n很小),当n很大时这个方法还是要舍弃的

【c】求一组数据的最大值和第二大的值_第1张图片

你可能感兴趣的:(c语言,算法,数据结构)