要求:给定一个整数数组,编写一个C语言函数,找出并返回数组中的第二大数。 ```c int findSecondLargest(int arr[], int size) { int max = arr[0], secondMax = INT_MIN; for (int i = 1; i < size; i++) { if (arr[i] > max) { ...
在C语言中,要找出数组中的第二大数,可以按照以下步骤进行: 初始化一个足够大的数组,并填充测试数据: c int arr[] = {12, 35, 1, 10, 34, 1}; int n = sizeof(arr) / sizeof(arr[0]); 遍历数组,找出最大的数并存储: c int max1 = arr[0]; for (int i = 1; i < n; i+...
设置两个变量max1和max2,用来保存最大数和第二大数,然后将数组剩余的数依次与这两个数比较,如果这个数a比max1大,则先将max1赋给max2,使原先最大的数成为第二大的数,再将这个数a赋给max1,如果这个数a比max1小但比max2大,则将这个数a赋值给max2,依次类推,直到数组中的数都比较完。 c语言代码: 1#i...
printf("第二大数为:%d\n",second(value,6));return0; }
{ if(num[j]>num[i]) { temp=num[j]; num[j]=num[i]; num[i]=temp; } } printf("第二大的数是:%d\n",num[1]); return 0;}
{ int n,i,max,max2,a[1000];printf("输入数据,以负数结束:\n");for(n=0;1;n++){ scanf("%d",&a[n]);if(a[n++]<0)break;} max=max2=a[0];for(i=1;i<n;i++)if(a[i]>max){max2=max; max=a[i];} else if(a[i]>max2)max2=a[i];printf("第二大的数是 ...
我分析下思路:2轮冒泡,可以找出第二大数。2轮循环。也可以找出第二大的。你要到公司面试,要讲效率的话。可以看看我写的下面这个代码 这是用快速排序,夹逼原则来锁定要找的第K大的元素 void swape(int *p1,int *p2){ int temp;temp=*p1;p1=*p2;p2=temp;} int searchPosition(int a[10...
include "stdio.h"void main(){ int a[10],i,j,m;printf("please input 10 nembers:\n");for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=0;i<9;i++)for(j=i+1;j<10;j++){ if(a[i]
先分离三个位数(假如是123):a=123/100=1 b=(123/10)%10=2 c=123%10=3 然后判断a≠b≠c,并且c*c*c=123 就好了。再接着外面套个循环,从100到999。最后找出倒数第二个就OK了。之所以不直接写出代码,是为了LZ能够更好的提高自己的编写程序的水平。
("第二大数为%d\n", FindSecondMax(array, 4)); return 0; } /*** * * author : RISE_AND_GRIND@163.com * date : 2024/04/07 * function : 找出一个整数数组中,第二大的数 * note : None * * ***/ int FindSecondMax(int *ptr, int n) { int max1 = 0...