用 C 求一组随机数的第二大值,不能通过对整体排序求得
1 随机产生20个[10 , 50]的正整数存到数组中,并求数组中的所有元素最大值、最小值、平均值以及各元素之和,及第二大值。
int a[20];
int sum = 0; //存储数组元素的和
//为数组赋值
printf("数组中的元素为:\n ");
for (int i = 0; i < 20; i ++) {
a[i] = arc4random() % 41 + 10;
sum += a[i]; // 对数组中的数求和
printf("%d ",a[i]);
}
printf("\n");
int max = a[0]; //存储数组中的最大值
int min = a[0]; //存储数组中的最小值
int second = a[0];//存储数组中第二大值
int ave = 0; //存储平均值
ave = sum / 20;
for (int i = 1; i < 20 ; i ++) {
// 求数组中的最大值
if (a[i] > max) {
max = a[i];
}
// 求数组中的最小值
if (a[i] < min ) {
min = a[i];
}
}
// 求数组中的第二大值
for (int i = 1; i < 20; i ++) {
if (second < max && second < a[i]) {
if (a[i] == max) {
continue;
}
second = a[i];
}
}
printf("最大值为:%d\n",max);
printf("最小值为:%d\n", min);
printf("这些数的平均值为:%d\n",ave );
printf("第二大值为:%d\n", second);
转载于:https://blog.51cto.com/9178463/1441055