某班有20名学生,每名学生的数据包括学号、姓名、3门课程的成绩。从键盘输入20名学生数据,并打印出3门课程总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课成绩、平均成绩)。使用结构体数据类型编程。#include<stdio.h>struct grade{int sub1;int sub2;int sub3;};struct data{int num;char name[20];struct grade subject;}stu[20],*p;int main(){int i,j,average;for(i=0;i<20;i++){printf("\n Enter all data of student(%d):\n",i+1);scanf("%d,&s,%d,%d,%d",&stu[i].num,stu[i].name,&stu[i].subject.sub1,&stu[i].subject.sub2,&stu[i].subject.sub3);}for(i=0;i<20;i++){printf("stu[%d]GPA:%d",i+1,(stu[i].subject.sub1+stu[i].subject.sub2+stu[i].subject.sub3)/3);}j=(stu[0].subject.sub1+stu[0].subject.sub2+stu[0].subject.sub3)/3;for(i=0,p=&stu[0];i<20;i++){average=(stu[i].subject.sub1+stu[i].subject.sub2+stu[i].subject.sub3)/3;if(average>j){j=(stu[i].subject.sub1+stu[i].subject.sub2+stu[i].subject.sub3)/3;p=&stu[i];}}printf("num:%d,name:%s,grade:%d,%d,%d,average:%d",(*p).num,(*p).name,(*p).subject.sub1,(*p).subject.sub2,(*p).subject.sub3,j);return 0;}哪里出错了
1 回答

偶然的你
TA贡献1841条经验 获得超3个赞
C++的结构体成员默认是私有的,所以不能直接访问,可以
struct grade
{
int sub1;
int sub2;
int sub3;
};
struct data
{
int num;
char name[20];
struct grade subject;
}stu[20],*p;
这个改为
struct grade
{
public:
int sub1;
int sub2;
int sub3;
};
struct data
{
public:
int num;
char name[20];
struct grade subject;
}stu[20],*p;
添加回答
举报
0/150
提交
取消