使用c++查找数组中最大值返回其下标
时间: 2023-11-18 15:03:49 浏览: 277
可以使用以下代码实现:
```c
#include <stdio.h>
int findMaxIndex(int arr[], int length) {
int maxIndex = 0;
for (int i = 1; i < length; i++) {
if (arr[i] > arr[maxIndex]) {
maxIndex = i;
}
}
return maxIndex;
}
int main() {
int arr[] = {1, 5, 3, 9, 7};
int length = sizeof(arr) / sizeof(arr[0]);
int maxIndex = findMaxIndex(arr, length);
printf("The index of the maximum value is: %d\n", maxIndex);
return 0;
}
```
在这个程序中,`findMaxIndex` 函数遍历数组并记录最大值的下标,然后返回该下标。在 `main` 函数中,我们调用 `findMaxIndex` 函数并打印最大值的下标。
相关问题
1、在main函数中,编写C++代码,实现以下要求: (1)通过new运算符动态创建一个长度为10的实型一维数组,返回的数组地址存储在指针变量p中,键盘输入任意10个数据存储在数组中; (2)写代码求出这10个数据的平均值,并分别统计输出数组中数据大于、等于和小于平均值的个数,并输出结果; (3)查找数组中的最大数据,并将其放在数组最前面,即0号单元; (4)使用指针变量p输出数组中的各元素。 (5)查找数组中的最小数据和位置,并输出结果; (6)键盘输入任意一个整数,查找该数据在数组中的下标并输出,如果找不到则输出“not find”。 (7)将数组转置,即 0号与9号交换,1号与8号交换...... (8)使用指针变量p输出数组中的各元素。
以下是实现要求的C++代码:
```cpp
#include <iostream>
using namespace std;
int main() {
float *p = new float[10]; // 动态创建长度为10的实型一维数组
float sum = 0; // 存储数组元素之和
float avg; // 存储平均值
int above = 0, equal = 0, below = 0; // 分别存储大于、等于和小于平均值的个数
int maxIndex = 0, minIndex = 0; // 存储最大和最小元素的下标
float temp; // 用于交换元素的临时变量
// 键盘输入数组元素
for (int i = 0; i < 10; i++) {
cout << "请输入第" << i+1 << "个数:";
cin >> p[i];
sum += p[i];
}
// 计算平均值和大于、等于、小于平均值的个数
avg = sum / 10.0;
for (int i = 0; i < 10; i++) {
if (p[i] > avg) above++;
else if (p[i] == avg) equal++;
else below++;
}
cout << "平均值为:" << avg << endl;
cout << "大于平均值的个数为:" << above << endl;
cout << "等于平均值的个数为:" << equal << endl;
cout << "小于平均值的个数为:" << below << endl;
// 查找最大元素并放在数组最前面
for (int i = 1; i < 10; i++) {
if (p[i] > p[maxIndex]) maxIndex = i;
}
temp = p[0];
p[0] = p[maxIndex];
p[maxIndex] = temp;
// 输出数组中的各元素
cout << "数组中的各元素为:";
for (int i = 0; i < 10; i++) {
cout << p[i] << " ";
}
cout << endl;
// 查找最小元素和位置
for (int i = 1; i < 10; i++) {
if (p[i] < p[minIndex]) minIndex = i;
}
cout << "最小元素为:" << p[minIndex] << ",位置为:" << minIndex << endl;
// 查找指定元素并输出下标
int num;
cout << "请输入要查找的整数:";
cin >> num;
int index = -1; // 存储查找到的下标
for (int i = 0; i < 10; i++) {
if (p[i] == num) {
index = i;
break;
}
}
if (index == -1) cout << "not find" << endl;
else cout << "该数在数组中的下标为:" << index << endl;
// 数组转置
for (int i = 0; i < 5; i++) {
temp = p[i];
p[i] = p[9-i];
p[9-i] = temp;
}
// 再次输出数组中的各元素
cout << "转置后数组中的各元素为:";
for (int i = 0; i < 10; i++) {
cout << p[i] << " ";
}
cout << endl;
delete [] p; // 释放内存
return 0;
}
```
以上代码中,我们使用new运算符动态创建了一个长度为10的实型一维数组,并将数组地址存储在指针变量p中。接着,我们通过键盘输入任意10个数据存储在数组中,并计算出了这10个数据的平均值,并分别统计输出了数组中数据大于、等于和小于平均值的个数。
然后,我们查找了数组中的最大数据,并将其放在数组最前面,即0号单元。接着,我们使用指针变量p输出了数组中的各元素,并查找了数组中的最小数据和位置,并输出了结果。
接下来,我们通过键盘输入任意一个整数,查找该数据在数组中的下标并输出,如果找不到则输出“not find”。最后,我们将数组转置,即0号与9号交换,1号与8号交换......,并再次使用指针变量p输出了数组中的各元素。
最后,记得释放内存,即使用delete运算符释放new运算符分配的内存空间。
c++写从键盘输入10个整数并保存到数组,,输出10个整数中的最大值以及其下标、最小值及其下标
#include <stdio.h>
int main()
{
int arr[10];
int max = 0, min = 0;
int max_index = 0, min_index = 0;
// 从键盘输入10个整数并保存到数组
printf("请输入10个整数:\n");
for (int i = 0; i < 10; i++) {
scanf("%d", &arr[i]);
}
// 查找最大值和最小值以及其下标
for (int i = 0; i < 10; i++) {
if (arr[i] > arr[max_index]) {
max_index = i;
}
if (arr[i] < arr[min_index]) {
min_index = i;
}
}
max = arr[max_index];
min = arr[min_index];
// 输出结果
printf("最大值:%d,下标:%d\n", max, max_index);
printf("最小值:%d,下标:%d\n", min, min_index);
return 0;
}
阅读全文