用c++求数组中有n个元素求最大元素和次大元素
时间: 2023-04-01 12:01:43 浏览: 68
可以使用以下代码来求解:
#include <stdio.h>
int main() {
int n;
printf("请输入数组元素个数:");
scanf("%d", &n);
int arr[n];
printf("请输入数组元素:");
for (int i = ; i < n; i++) {
scanf("%d", &arr[i]);
}
int max = arr[], secondMax = arr[];
for (int i = 1; i < n; i++) {
if (arr[i] > max) {
secondMax = max;
max = arr[i];
} else if (arr[i] > secondMax) {
secondMax = arr[i];
}
}
printf("最大元素为:%d,次大元素为:%d\n", max, secondMax);
return ;
}
相关问题
用c++求一个一维数组中元素的最大最小和平均值
好的,我知道了。对于您的问题,以下是求解一维数组中元素的最大值、最小值、和、平均值的 C 代码示例:
```c
#include <stdio.h>
int main()
{
int arr[] = {10, 5, 30, 15, 20};
int n = sizeof(arr) / sizeof(arr[0]); // 数组元素个数
int i;
int max = arr[0], min = arr[0], sum = 0;
double avg;
for(i = 0; i < n; i++)
{
if(arr[i] > max)
{
max = arr[i];
}
if(arr[i] < min)
{
min = arr[i];
}
sum += arr[i];
}
avg = (double)sum / n;
printf("最大值为:%d\n", max);
printf("最小值为:%d\n", min);
printf("和为:%d\n", sum);
printf("平均值为:%f\n", avg);
return 0;
}
```
运行结果如下:
```
最大值为:30
最小值为:5
和为:80
平均值为:16.000000
```
希望这可以帮助您解决问题。
C++模版】求数组中最大元素(函数模版)
以下是一个求取数组中最大元素的 C++ 函数模板:
```cpp
#include <iostream>
template <typename T, size_t N>
T max_element(T (&arr)[N]) {
T max = arr[0];
for (size_t i = 1; i < N; ++i) {
if (arr[i] > max) {
max = arr[i];
}
}
return max;
}
int main() {
int arr[] = {1, 3, 5, 2, 4};
std::cout << "The max element is: " << max_element(arr) << std::endl;
return 0;
}
```
该函数模板接受一个数组引用作为参数,使用循环遍历数组中所有元素,并比较它们的大小,最后返回最大的元素值。在调用时,可以传入不同类型的数组,如 `int`、`float`、`double` 等等。