#include <stdio.h>
#include <stdlib.h>
#define NUM_STUDENTS 5
#define NUM_COURSES 3
typedef struct {
int student_number;
char name[20];
float courses[NUM_COURSES];
float average;
} Student;
int main(int argc, char *argv[]) {
if (argc != 2) {
printf("Usage: %s file_name\n", argv[0]);
return 1;
}
char *file_name = argv[1];
Student students[NUM_STUDENTS];
for (int i = 0; i < NUM_STUDENTS; i++) {
printf("Enter student number: ");
scanf("%d", &students[i].student_number);
printf("Enter name: ");
scanf("%s", students[i].name);
for (int j = 0; j < NUM_COURSES; j++) {
printf("Enter course %d score: ", j + 1);
scanf("%f", &students[i].courses[j]);
}
students[i].average = (students[i].courses[0] + students[i].courses[1] + students[i].courses[2]) / NUM_COURSES;
}
FILE *fp = fopen(file_name, "wb");
if (fp == NULL) {
perror("Error opening file");
return 1;
}
for (int i = 0; i < NUM_STUDENTS; i++) {
fwrite(&students[i], sizeof(Student), 1, fp);
}
fclose(fp);
return 0;
}
嗯,大家能帮我看看这个代码有啥问题吗。试试结果不对。