为了账号安全,请及时绑定邮箱和手机立即绑定

以下是使用结构体数据类型编程,运行后出现错误,请问该怎么修改?

以下是使用结构体数据类型编程,运行后出现错误,请问该怎么修改?

森林海 2022-05-13 11:07:51
某班有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;



查看完整回答
反对 回复 2022-05-16
  • 1 回答
  • 0 关注
  • 193 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号