我知道下面的代码不完整。我正在调试它,无论我做什么,我都无法弄清楚为什么我会收到错误:请求成员'gpa'不是结构或联合(第22行)。我很肯定有更多的代码要做,而且有更多的警告和错误,我还没有担心这些。就是我从未遇到的这一个。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#define MAXNAME 11
#define MAXSTUDENTS 9
typedef struct student
{
char name[ MAXNAME ];
double gpa;
char grade;
}student_t;
void grade_students(student_t *, int n);
void print_students(student_t *, int n);
int main()
{
student_t students[ MAXSTUDENTS ];
int n;
students.gpa = n;
FILE *infilep;
infilep = fopen("lab09.in", "r");
}
我想要做的是使用typedef成员但是当我尝试遵循我的文本和类注释中使用的格式时,我得到了错误。
答案 0 :(得分:0)
变量students
被声明为student_t
student_t students[ MAXSTUDENTS ];
因此,要访问数组的元素,您应该使用下标运算符,例如
students[0].gpa = 0.0;
另一个例子可以在函数print_students
中使用。虽然在函数中它只是一个指针但是你可以使用与下标运算符相同的语法
void print_students( const student_t *students, int n )
{
for ( int i = 0; i < n; i++ )
{
puts( students[i].name );
//...
}
}