使用数组和指针统计成绩
时间: 2024-11-23 08:38:43 浏览: 31
在编程中,你可以使用数组和指针来统计学生成绩。首先,假设我们有一个包含学生分数的整数数组,每个元素代表一个学生的得分。我们可以创建一个指向数组起始位置的指针,然后遍历整个数组:
1. 定义数组 `scores` 和其大小,例如存储10位学生的分数:
```c++
int scores[10];
```
2. 初始化数组并输入学生分数:
```c++
for (int i = 0; i < 10; ++i) {
scores[i] = get_student_score(); // 获取函数,从用户那里获取分数
}
```
3. 使用指针遍历数组计算总分、平均分等信息:
```c++
int* score_ptr = scores; // 创建指向数组首元素的指针
int sum = 0;
for (int i = 0; i < 10; ++i) {
sum += *score_ptr; // 指针解引用,累加分数
score_ptr++; // 指针前进到下一个元素
}
double average = static_cast<double>(sum) / 10; // 计算平均分
```
4. 结果处理:
```c++
cout << "总分: " << sum << endl;
cout << "平均分: " << average << endl;
```
相关问题
用一维数组和指针作为函数参数编程实现学生成绩信息统计
可以定义一个包含学生成绩的一维数组,然后将其作为函数参数传递给一个统计成绩信息的函数。函数中可以使用指针来遍历数组,计算总分、平均分、最高分、最低分等信息,并将结果输出。具体实现可以参考以下代码:
```c
#include <stdio.h>
void score_statistics(int *scores, int n) {
int sum = 0;
int max = scores[0];
int min = scores[0];
for (int i = 0; i < n; i++) {
sum += scores[i];
if (scores[i] > max) {
max = scores[i];
}
if (scores[i] < min) {
min = scores[i];
}
}
double average = (double)sum / n;
printf("总分:%d\n", sum);
printf("平均分:%.2f\n", average);
printf("最高分:%d\n", max);
printf("最低分:%d\n", min);
}
int main() {
int scores[] = {80, 90, 70, 85, 95};
int n = sizeof(scores) / sizeof(scores[0]);
score_statistics(scores, n);
return 0;
}
```
在上面的代码中,`score_statistics`函数接收一个指向整型数组的指针`scores`和数组长度`n`作为参数。函数中使用指针遍历数组,计算总分、平均分、最高分、最低分等信息,并将结果输出。在`main`函数中,定义一个包含学生成绩的一维数组`scores`,并将其作为参数传递给`score_statistics`函数。最后输出统计结果。
动态建立一个对象数组,包含5个学生的数据(学号,1门成绩)。利用指向数组的指针,统计平均成绩和1,3,5学生的数据
您好,根据您的需求,可以使用以下代码动态建立一个包含5个学生数据的对象数组,统计平均成绩和1、3、5学生的数据:
```
#include <iostream>
using namespace std;
class Student {
public:
int num;
float score;
};
int main() {
Student *ptr;
ptr = new Student[5];
for (int i = 0; i < 5; i++) {
cout << "请输入第" << i+1 << "个学生的学号和成绩:" << endl;
cin >> ptr[i].num >> ptr[i].score;
}
float sum = 0;
for (int i = 0; i < 5; i++) {
sum += ptr[i].score;
}
float average = sum / 5;
cout << "平均成绩为:" << average << endl;
cout << "1号学生的学号和成绩为:" << ptr[0].num << " " << ptr[0].score << endl;
cout << "3号学生的学号和成绩为:" << ptr[2].num << " " << ptr[2].score << endl;
cout << "5号学生的学号和成绩为:" << ptr[4].num << " " << ptr[4].score << endl;
delete[] ptr;
return 0;
}
```
运行程序后,可以按照提示依次输入每个学生的学号和成绩,程序将会计算平均成绩,并输出1、3、5号学生的学号和成绩信息。由于采用动态分配内存方式,最后需要使用`delete[]`释放内存。
阅读全文