1、在main函数中,编写C++代码,实现以下要求: (1)通过new运算符动态创建一个长度为10的实型一维数组,返回的数组地址存储在指针变量p中,键盘输入任意10个数据存储在数组中; (2)写代码求出这10个数据的平均值,并分别统计输出数组中数据大于、等于和小于平均值的个数,并输出结果; (3)查找数组中的最大数据,并将其放在数组最前面,即0号单元; (4)使用指针变量p输出数组中的各元素。 (5)查找数组中的最小数据和位置,并输出结果; (6)键盘输入任意一个整数,查找该数据在数组中的下标并输出,如果找不到则输出“not find”。 (7)将数组转置,即 0号与9号交换,1号与8号交换......
时间: 2024-03-09 13:44:33 浏览: 104
下面是实现以上要求的C++代码:
```c++
#include <iostream>
using namespace std;
int main() {
// 动态创建长度为10的实型一维数组
double* p = new double[10];
// 键盘输入任意10个数据存储在数组中
cout << "请输入10个实数:" << endl;
double sum = 0; // 用于累加求平均值
for (int i = 0; i < 10; i++) {
cin >> p[i];
sum += p[i];
}
// 求平均值并统计大于、等于和小于平均值的个数
double avg = sum / 10;
int count1 = 0, count2 = 0, count3 = 0;
for (int i = 0; i < 10; i++) {
if (p[i] > avg) {
count1++;
} else if (p[i] == avg) {
count2++;
} else {
count3++;
}
}
cout << "平均值为:" << avg << endl;
cout << "大于平均值的数的个数为:" << count1 << endl;
cout << "等于平均值的数的个数为:" << count2 << endl;
cout << "小于平均值的数的个数为:" << count3 << endl;
// 查找数组中的最大数据,并将其放在数组最前面
double 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;
// 输出数组中的各元素
cout << "数组中的各元素为:" << endl;
for (int i = 0; i < 10; i++) {
cout << p[i] << " ";
}
cout << endl;
// 查找数组中的最小数据和位置
double 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;
// 键盘输入任意一个整数,查找该数据在数组中的下标并输出
int x;
cout << "请输入一个整数:";
cin >> x;
int index = -1;
for (int i = 0; i < 10; i++) {
if (p[i] == x) {
index = i;
break;
}
}
if (index == -1) {
cout << "not find" << endl;
} else {
cout << "该数的下标为:" << index << endl;
}
// 将数组转置
for (int i = 0; i < 5; i++) {
double temp = p[i];
p[i] = p[9 - i];
p[9 - i] = temp;
}
cout << "转置后的数组为:" << endl;
for (int i = 0; i < 10; i++) {
cout << p[i] << " ";
}
cout << endl;
// 释放动态分配的数组空间
delete[] p;
return 0;
}
```
注意,以上代码中通过 `new` 运算符动态创建的数组,应该在使用完毕后使用 `delete[]` 运算符释放分配的空间。
阅读全文