C++语言,一个数组中有90个数,找出最大值
时间: 2024-05-15 09:12:15 浏览: 16
可以使用一个变量 `max_num` 来存储当前找到的最大值,然后遍历整个数组,如果当前数字比 `max_num` 大,就把它赋值给 `max_num`,最后遍历完成后, `max_num` 就是数组中的最大值。
以下是示例代码:
```c++
#include <iostream>
using namespace std;
int main() {
int nums[90] = {1, 2, 3, ... , 88, 89, 90}; // 假设数组已经存在
int max_num = nums[0]; // 先将第一个数设为最大值
for (int i = 1; i < 90; i++) { // 从第二个数开始遍历数组
if (nums[i] > max_num) { // 如果当前数字比最大值还大
max_num = nums[i]; // 更新最大值
}
}
cout << "数组中的最大值是:" << max_num << endl;
return 0;
}
```
相关问题
c++找出一个数组中的最大值的位置
以下是一个示例Python代码,用于找出一个数组中的最大值的位置:
```
arr = [5, 2, 8, 12, 3, 9]
max_val = max(arr)
max_index = arr.index(max_val)
print("最大值为", max_val, ",位置为", max_index)
```
输出结果:
```
最大值为 12 ,位置为 3
```
这个代码首先使用了Python内置函数`max`来找到数组`arr`中的最大值,然后使用`index`方法来获取这个最大值在数组中的位置。注意,如果最大值在数组中出现了多次,那么这个代码只会返回第一次出现的位置。如果要找到所有最大值的位置,可以使用循环来遍历整个数组。
用C++写一个找出数组中最大值和次大值的算法
### 回答1:
#include <stdio.h>
int main()
{
int arr[5] = {5, 9, 11, 3, 7};
int max = arr[0];
int secondMax = arr[0];
for(int i=1; i<5; i++){
if(arr[i] > max){
secondMax = max;
max = arr[i];
}
else if(arr[i] > secondMax){
secondMax = arr[i];
}
}
printf("最大值为%d,次大值为%d。", max, secondMax);
return 0;
}
### 回答2:
下面是一个使用C语言编写的找出数组中最大值和次大值的算法:
```c
#include <stdio.h>
void findTwoLargest(int arr[], int size, int* max, int* secondMax) {
*max = arr[0];
*secondMax = arr[0];
for (int i = 1; i < size; i++) {
if (arr[i] > *max) {
*secondMax = *max;
*max = arr[i];
} else if (arr[i] > *secondMax && arr[i] < *max) {
*secondMax = arr[i];
}
}
}
int main() {
int arr[] = {5, 9, 3, 1, 7};
int size = sizeof(arr) / sizeof(arr[0]);
int max, secondMax;
findTwoLargest(arr, size, &max, &secondMax);
printf("最大值:%d\n次大值:%d\n", max, secondMax);
return 0;
}
```
该算法使用了一个for循环来遍历数组,并使用两个变量(max和secondMax)来记录当前找到的最大值和次大值。在遍历过程中,如果发现比当前最大值大的数,则将最大值赋值给次大值,然后将该数赋值给最大值。如果发现比当前次大值大且比最大值小的数,则将该数赋值给次大值。最终输出找到的最大值和次大值。
在上述示例代码中,数组为{5, 9, 3, 1, 7},最大值为9,次大值为7。
### 回答3:
可以使用C语言编写一个算法来找出数组中的最大值和次大值。具体的实现方法如下:
1. 声明两个变量max和second_max,分别用于保存最大值和次大值,初始值都为数组中的第一个元素。
2. 遍历数组,从第二个元素开始比较:
a. 如果当前元素大于max,则将max的值更新为当前元素的值,同时将second_max的值更新为max的旧值。
b. 如果当前元素小于max但大于second_max,则将second_max的值更新为当前元素的值。
3. 结束遍历后,max即为数组中的最大值,second_max即为次大值。
4. 打印最大值和次大值。
以下是一个示例代码的实现:
```c
#include <stdio.h>
void find_max_and_second_max(int arr[], int size) {
int max = arr[0];
int second_max = arr[0];
for (int i = 1; i < size; i++) {
if (arr[i] > max) {
second_max = max;
max = arr[i];
} else if (arr[i] > second_max && arr[i] < max) {
second_max = arr[i];
}
}
printf("最大值:%d\n", max);
printf("次大值:%d\n", second_max);
}
int main() {
int arr[] = {1, 5, 3, 2, 9, 7};
int size = sizeof(arr) / sizeof(arr[0]);
find_max_and_second_max(arr, size);
return 0;
}
```
运行以上代码,输出结果为:
最大值:9
次大值:7
通过以上算法实现,可以找出数组中的最大值和次大值的值,并将结果打印出来。注意,以上代码中假设数组中至少包含两个元素。实际应用中,可能需要根据具体情况对代码进行适当的修改。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)