某班有20名學(xué)生,每名學(xué)生的數(shù)據(jù)包括學(xué)號(hào)、姓名、3門課程的成績(jī)。從鍵盤輸入20名學(xué)生數(shù)據(jù),并打印出3門課程總平均成績(jī),以及最高分的學(xué)生的數(shù)據(jù)(包括學(xué)號(hào)、姓名、3門課成績(jī)、平均成績(jī))。使用結(jié)構(gòu)體數(shù)據(jù)類型編程。#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;}哪里出錯(cuò)了
1 回答

偶然的你
TA貢獻(xiàn)1841條經(jīng)驗(yàn) 獲得超3個(gè)贊
C++的結(jié)構(gòu)體成員默認(rèn)是私有的,所以不能直接訪問(wèn),可以
struct grade
{
int sub1;
int sub2;
int sub3;
};
struct data
{
int num;
char name[20];
struct grade subject;
}stu[20],*p;
這個(gè)改為
struct grade
{
public:
int sub1;
int sub2;
int sub3;
};
struct data
{
public:
int num;
char name[20];
struct grade subject;
}stu[20],*p;
添加回答
舉報(bào)
0/150
提交
取消