查找数组中第二大的数(c语言)
2014-04-02 17:17
211 查看
#include<stdio.h> int flag=0; //标记数组内的内容全部相同 int findsecond(int a[],int len) { int max,secmax; int i; if (a[0]>a[1]) { max=a[0]; secmax=a[1]; } else { max=a[1]; secmax=a[0]; } for (i=2;i<len;i++) if (a[i]>max) { secmax=max; max=a[i]; } else if (a[i]>secmax ) secmax=a[i]; if (secmax==max) flag=1; //考虑这样的数组{10,10,10,10...}所有数据都相同的情况 return secmax; } int main() { int a[32]; int n,i; printf("input the number:\n"); scanf("%d",&n); for (i=0;i<n;i++) scanf("%d",&a[i]); int second=findsecond(a,n); if (flag==0) printf("%d\n",second); else printf("there is no second number\n"); }
算法描述:max 与secmax,如果a[i]大于max,则secmax=max,max=a[i],随时保存最大的和第二大的值。
相关文章推荐
- C语言实现数组中查找最大值、最小值和第二大值
- 【我解C语言面试题系列】012 查找整数数组中第二大的数
- C语言面试题 4 (查找整数数组中第二大的数)
- 【我解C语言面试题系列】012 查找整数数组中第二大的数
- 查找数组中第二大的数字
- c语言 数组形参 二分查找 随机种子 猜数游戏
- 1查找一个整数数组中第二大的数、2分解质因数
- c语言经典算法——查找一个整数数组中第二大数
- C语言 · 数组查找及替换
- C语言查找数组里数字重复次数的方法
- 查找数组中第二大或者第二小的数值
- C语言//选择排序 //查找数组范围内最小的值跟第一个值交换 k记录最小值下标
- 【C语言】二分法实现数组查找
- 函数查找一个整数数组中第二大的数
- C语言求数组的第二大数
- C语言 有关数组查找
- C语言实现 二分查找数组中的Key值(递归和非递归)
- 查找数组中的第二大数
- C语言 ,有15个数按由大到小顺序存放在一个数组中,输入一个数,要求用拆半查找法找出该数是数组中的第几个元素的值,如果该数不在数组中,则输出“无此数”
- C语言数组折中查找