要求:给定一个整数数组,编写一个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) { ...
设置两个变量max1和max2,用来保存最大数和第二大数,然后将数组剩余的数依次与这两个数比较,如果这个数a比max1大,则先将max1赋给max2,使原先最大的数成为第二大的数,再将这个数a赋给max1,如果这个数a比max1小但比max2大,则将这个数a赋值给max2,依次类推,直到数组中的数都比较完。 c语言代码: 1#i...
second=first; first=value[i]; }elseif(value[i] < first && value[i] >second) { second=value[i]; } }returnsecond; }intmain() {intvalue[6]; printf("数入6个数:\n");inti =0;for(i =0; i <6;i++) { scanf("%d",&value[i]); } printf("第二大数为:%d\n",second(value,6...
else if(a[i]>max2)max2=a[i];printf("第二大的数是 %d\n",max2);getch();return 0;}
我分析下思路:2轮冒泡,可以找出第二大数。2轮循环。也可以找出第二大的。你要到公司面试,要讲效率的话。可以看看我写的下面这个代码 这是用快速排序,夹逼原则来锁定要找的第K大的元素 void swape(int *p1,int *p2){ int temp;temp=*p1;p1=*p2;p2=temp;} int searchPosition(int a[10...
{ if(num[j]>num[i]) { temp=num[j]; num[j]=num[i]; num[i]=temp; } } printf("第二大的数是:%d\n",num[1]); return 0;}
//c语言求1到1000之间的第二大完数#include <stdio.h>int main(){ int i,j,cnt=0; int a[100]; for(i=2;i<=1000;i++) { int sum = 0; for(j=1;j
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]
1、排序;//直接了当,适用范围广 2、求出最大的,再比较剩下的两个,求较大的数。
求一下它的因子和,判断一下是否可行,第二个满足的数直接输出即可。求因子从1for到那个数的一半就行...