编写程序,求一个宿舍六个人的平均成绩,用四种c语言方法写出
时间: 2024-09-09 13:06:36 浏览: 37
在C语言中,有多种方法可以计算6个人的平均成绩。这里列举四种常见的方法:
1. **数组法**:
```c
#include <stdio.h>
#define NUM_STUDENTS 6
int main() {
float scores[NUM_STUDENTS];
float sum = 0;
// 输入每个人的分数
for (int i = 0; i < NUM_STUDENTS; i++) {
scanf("%f", &scores[i]);
sum += scores[i];
}
// 计算并输出平均成绩
float average = sum / NUM_STUDENTS;
printf("六人的平均成绩是: %.2f\n", average);
return 0;
}
```
2. **结构体法**:
```c
#include <stdio.h>
typedef struct {
char name[20];
float score;
} Student;
int main() {
Student students[6];
float total_score = 0;
// 读取每个人的信息并累加分数
for (int i = 0; i < 6; i++) {
scanf("%s%f", students[i].name, &students[i].score);
total_score += students[i].score;
}
// 计算平均成绩并输出
float average = total_score / 6;
printf("六人的平均成绩是: %.2f\n", average);
return 0;
}
```
3. **动态数组法**:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
int num_students = 6;
float* scores = malloc(num_students * sizeof(float));
int count = 0;
// 输入每个人的分数,直到输入结束
while (count < num_students) {
scanf("%f", &scores[count]);
count++;
}
// 计算并输出平均成绩
float sum = 0;
for (int i = 0; i < num_students; i++) {
sum += scores[i];
}
free(scores); // 别忘了释放内存
float average = sum / num_students;
printf("六人的平均成绩是: %.2f\n", average);
return 0;
}
```
4. **函数指针法** (适用于C99及以上版本):
```c
#include <stdio.h>
#include <stdarg.h>
// 定义计算总分的函数
float sum_scores(void*, ...);
int main() {
va_list args;
va_start(args, _);
float sum = sum_scores(NULL, args); // 使用NULL表示学生信息
va_end(args);
float average = sum / 6;
printf("六人的平均成绩是: %.2f\n", average);
return 0;
}
// 函数指针实现的总分计算
float sum_scores(void* arg, ...) {
va_list args;
va_copy(args, arg);
float total = 0;
while ((void*)va_arg(args, float) != NULL) { // 结束条件是遇到NULL
total += va_arg(args, float);
}
va_end(args);
return total;
}
```
以上每种方法都展示了计算平均成绩的不同思路。在实际应用中,可以根据项目需求和个人喜好选择合适的方法。
阅读全文