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输出数组中的各元素。
时间: 2024-03-10 20:46:54 浏览: 40
以下是实现要求的C++代码:
```c++
#include <iostream>
using namespace std;
int main() {
float* p = new float[10]; // 动态创建长度为10的实型一维数组
float sum = 0, avg;
int larger = 0, equal = 0, smaller = 0;
// 键盘输入数据
for (int i = 0; i < 10; i++) {
cin >> p[i];
sum += p[i];
}
avg = sum / 10;
// 统计大于、等于和小于平均值的个数
for (int i = 0; i < 10; i++) {
if (p[i] > avg) {
larger++;
} else if (p[i] == avg) {
equal++;
} else {
smaller++;
}
}
cout << "大于平均值的个数为:" << larger << endl;
cout << "等于平均值的个数为:" << equal << endl;
cout << "小于平均值的个数为:" << smaller << endl;
// 查找最大数据并放在数组最前面
float max = p[0];
int maxIndex = 0;
for (int i = 1; i < 10; i++) {
if (p[i] > max) {
max = p[i];
maxIndex = i;
}
}
p[maxIndex] = p[0];
p[0] = max;
// 输出数组中的各元素
for (int i = 0; i < 10; i++) {
cout << p[i] << " ";
}
cout << endl;
// 查找最小数据和位置
float min = p[0];
int minIndex = 0;
for (int i = 1; i < 10; i++) {
if (p[i] < min) {
min = p[i];
minIndex = i;
}
}
cout << "最小数据为:" << min << ",位置为:" << minIndex << endl;
// 查找指定数据的位置
float target;
int targetIndex = -1;
cin >> target;
for (int i = 0; i < 10; i++) {
if (p[i] == target) {
targetIndex = i;
break;
}
}
if (targetIndex == -1) {
cout << "not find" << endl;
} else {
cout << "目标数据在数组中的下标为:" << targetIndex << endl;
}
// 数组转置
for (int i = 0; i < 5; i++) {
float temp = p[i];
p[i] = p[9 - i];
p[9 - i] = temp;
}
// 输出数组中的各元素
for (int i = 0; i < 10; i++) {
cout << p[i] << " ";
}
cout << endl;
// 释放动态分配的内存
delete[] p;
p = nullptr;
return 0;
}
```
阅读全文