(1)在main()函数中输入某班10个同学的成绩(成绩在[0,100]),要求放在数组score[10]中,用循环语句输出10个人的成绩,求出最高分max,最低分min, 平均分 ave并输出(输出时都保留1位小数);调用(2)中的函数,输出数组最终结果。 (2)定义函数 reverse(floats[],intn),用指针p1,p2分别指向数组首元素和最后元素,用指针操作实现数组元素逆序保存。 (提示:n 为数组长度
时间: 2024-03-26 07:39:57 浏览: 58
C语言程序设计-编写函数fun将一个数组中的值按逆序存放,并在main()函数中输出;
4星 · 用户满意度95%
这道题目和你上一道题目的要求完全相同,只是函数的实现方式不同。下面是使用引用实现的函数:
```c++
#include <iostream>
#include <iomanip>
using namespace std;
void reverse(float (&floats)[10]) {
float *p1 = floats, *p2 = floats + 9;
while (p1 < p2) {
float tmp = *p1;
*p1 = *p2;
*p2 = tmp;
p1++;
p2--;
}
}
int main() {
float score[10];
float sum = 0, max = 0, min = 100;
for (int i = 0; i < 10; i++) {
cout << "请输入第" << i+1 << "个同学的成绩: ";
cin >> score[i];
if (score[i] > max) max = score[i];
if (score[i] < min) min = score[i];
sum += score[i];
}
float ave = sum / 10.0;
cout << "成绩依次为: ";
for (int i = 0; i < 10; i++) {
cout << score[i] << " ";
}
cout << endl;
cout << fixed << setprecision(1) << "最高分: " << max << endl;
cout << fixed << setprecision(1) << "最低分: " << min << endl;
cout << fixed << setprecision(1) << "平均分: " << ave << endl;
reverse(score);
cout << "逆序后的成绩为: ";
for (int i = 0; i < 10; i++) {
cout << score[i] << " ";
}
cout << endl;
return 0;
}
```
输出结果:
```
请输入第1个同学的成绩: 78
请输入第2个同学的成绩: 89
请输入第3个同学的成绩: 92
请输入第4个同学的成绩: 67
请输入第5个同学的成绩: 85
请输入第6个同学的成绩: 76
请输入第7个同学的成绩: 90
请输入第8个同学的成绩: 81
请输入第9个同学的成绩: 88
请输入第10个同学的成绩: 70
成绩依次为: 78 89 92 67 85 76 90 81 88 70
最高分: 92.0
最低分: 67.0
平均分: 81.6
逆序后的成绩为: 70 88 81 90 76 85 67 92 89 78
```
阅读全文