您的位置:首页 > 编程语言 > C语言/C++

C语言,求数组中第二大值,两种方法.

2014-07-21 21:47 190 查看
<span style="font-size:18px;">//第一种方法
int sum = 0;
int a[20] = {0};
int max = 0,secMax = 0;
printf("20个随机数为: ");
for (int i = 0; i < 20; i++) {
a[i] = arc4random() %(50 - 10 + 1) + 10;//元素取值区间[10 - 50]
printf("%d ", a[i]);
}
printf("\n");
//第二大值
for (int i = 0; i < 20; i++) {
if (a[i] > max){
max = a[i];  //找出最大值
}
}
for (int i = 0; i < 20; i++) {
if (a[i] == max) {
continue;//找到最大值时跳出
}else if(a[i] > secMax){
secMax = a[i];
}
}
printf("第二最大值为:%d ", secMax);//输出第二最大值
//第二种方法:
int a [20] = {0};
//维数组中的元素赋值,范围[10,50]
for (int i= 0; i< 20; i++) {
a[i] = arc4random() % (50 - 10 + 1) + 10;
printf("%d ", a[i]);
}
int max = 0, min = a[0], sum = 0, secondMax = 0;//max存储最大值,min存储最小值,sum存储和,secoondMax第二最大值
float avg = 0.0;//存储平均值
//求最大值,第二大值
for (int i = 0; i < 20; i++) {
if (a[i] > max) {
secondMax = max ;//存储max中的值
max = a[i];//存储大值
}else if( a[i] != max && a[i] > secondMax){
secondMax = a[i];//存储大于secondMax,但是不大于max的值
}
}
printf("\nmax= %d  secondMax = %d", max, secondMax);</span>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言 printf c 编程 random