要求输出3门课的平均成绩,以及最高分的学生的数据(包括学号,姓名,3门课的成绩和平均成绩)
求高手帮忙啊
#include <iostream>
using namespace std;
struct Student
{
int num;
char name[20];
float score1;
float score2;
float score3;
float average;
}stu1,stu2,stu3,stu4,stu5,stu6,stu7,stu8,stu9,stu10;
int main()
{
int i,*max;
Student *p=&stu1;
for(i=0;i<10;p++)
{
cin>>p->num>>p->name>>p->score1>>p->score2>>p->score3;
}
Student *a=&stu1;
for(i=0;i<10;a++)
{
a->average=(a->score1+a->score2+a->score3)/3;
}
Student *b=&stu1;
*max=b->average;
for(i=1;i<10;b++)
{
if(*max<b->average)
max=b;
}
void print(Student *);
print(max);
return 0;
}
void print(Student *p)
{
cout<<p->num<<" "<<p->name<<" "<<p->score1<<" "<<p->score2<<" "<<p->score3<<" "<<p->average<<endl;
}
#include <iostream>using namespace std;
#define STUDENTS_NUM 3 //预定义,学生个数,以后学生数有改动时,只需更改这一处就OK了,我测试的时候只测了3个学生的
typedef struct _Student
{
int num;
char name[20];
float score1;
float score2;
float score3;
float average;
}Student,*pStudent; //不是有多少个学生就要定义多少个结构体名出来,typedef的用法如果不清楚,可以查一下
void print(pStudent stu);
void holdScreen();
int main()
{
int i=0, max=0; //养成良好习惯,变量定义时最好要自己初始化(虽然C++编译器会自动初始化,但是如果是指针的话,在C里面就难定了)
int iAverage = 0;
int iMyAverageIsTheMax = 0; //记录平均成绩最大的那个学生的数组索引(也就是它的数组下脚标)
pStudent pStu[STUDENTS_NUM] = {0}; //一个容量为STUDENTS_NUM这么多个的结构体指针数组,数组中仅仅只是指针。指针在哪儿都是重点,要深入理解
pStudent pTemStu = NULL; //typedef让pStudent等同于Student *
for(i=0; i<STUDENTS_NUM; i++)
{
pStu[i] = new Student; //初始化结构体,指针指向这个结构体
cin>>pStu[i]->num>>pStu[i]->name>>pStu[i]->score1>>pStu[i]->score2>>pStu[i]->score3;
}
for(i=0; i<STUDENTS_NUM; i++)
{
pStu[i]->average=(pStu[i]->score1+pStu[i]->score2+pStu[i]->score3)/3;
}
max = pStu[0]->average;
iMyAverageIsTheMax = 0;
for( i=1; i<STUDENTS_NUM; i++ )
{
if( max < pStu[i]->average )
{
max=pStu[i]->average;
iMyAverageIsTheMax = i; //记录平均成绩最大的索引
}
}
print( pStu[iMyAverageIsTheMax] );
holdScreen(); //让屏幕保持输出结果,不然一下子就没了
return 0;
}
void print(pStudent pStu)
{
cout<<pStu->num<<" "<<pStu->name<<" "<<pStu->score1<<" "<<pStu->score2<<" "<<pStu->score3<<" "<<pStu->average<<endl;
}
void holdScreen()
{
char i;
cout<<"Press any key to continue"<<endl;
cin>>i;
}
追问
谢谢了哈,不过,您的有些语句我不是很熟悉,所以没有选满意答案
追答没事啦,往后你一定会明白滴,加油咯。
我主要是把编程规范化来写的,有利于思路不混乱。
嗯嗯,我也晓得规范点好,只是现在只是很粗浅地在模仿课本,可是又模仿不好
谢谢拉,可是这段代码运行之后还是有问题的,大概是我的代码错太多了
追答for(i=1;iaverage average)
maxStu=b;
}
改为
b = &stu[1];
for(i=1;iaverage average)
maxStu=b;
}
C++ 有10个学生,从键盘输入10个学生的学号,姓名和3门课的成绩
int iAverage = 0;int iMyAverageIsTheMax = 0; \/\/记录平均成绩最大的那个学生的数组索引(也就是它的数组下脚标)pStudent pStu[STUDENTS_NUM] = {0}; \/\/一个容量为STUDENTS_NUM这么多个的结构体指针数组,数组中仅仅只是指针。指针在哪儿都是重点,要深入理解 pStudent pTemStu = NULL; ...
...学号,姓名、3门课程的成绩,从键盘输入10个学生的数据,要求输出学生3...
char stuName[20]; \/\/学生姓名 int stuscore[3]; \/\/学生3门课成绩 };int main() { int i, j;student stu[10];\/\/为了简单,此处只输入前3个学生的数据。如果要输入10个学生数据,把for中3改成10即可 for(i = 0; i < 3; i++) { printf("请输入第%d个学生学号:", i + 1);...
...包括学号,姓名,3门课的成绩,从键盘输入10个学生数据,
for(i=0;i<10;i++)printf("学号:%d 姓名:%s 成绩:%d %d %d 平均成绩:%d\\n",person[i]->number,person[i]->name[20],person->score[0],person->score[1],person->score[2],person->score[3]);}
用C++编写一个程序 : 输入10个学生的姓名、学号和成绩,将其中不及格...
{ int num;\/\/学号 char name[20];\/\/姓名 float score;\/\/成绩 }stt[n];void main(){ printf("学号\\t姓名\\t成绩\\n");for(int i=0;i<n;i++){ scanf("%d %s %f",&stt[i].num ,stt[i].name ,&stt[i].score );} \/\/用C++编写一个程序 : 输入10个学生的姓名、学号和成绩...
C++:输入10个学生的姓名、学号和成绩,将其中不及格者的姓名、学号和成绩...
int Score; \/\/成绩 public: \/\/外部成员关键字 Stu(){strcpy(Name,"无"); \/\/无参构造函数 ID=0;Score=0;} int Inp() \/\/从键盘输入学生信息函数 {printf("请输入姓名:"); scanf("%s",Name); printf("请输入学号:"); scanf("%d",&ID); printf("...
C++,从键盘输入10个学生的信息包括学号,姓名,成绩要求按每个学生的...
;charname[20];intscore[3];floataverage;}stud[SIZE];voidinput()\/*输入学生的信息*\/{inti;for(i=0;i<SIZE;i++){printf("第%d个学生的信息:\\n",i+1);scanf("%s%s%d%d%d",stud[i].id,stud[i].name,&stud[i].score[0],&stud[i].score[1],&stud[i].score[2]);stud[i]...
...有10个学生,每个学生的数据包括学号,姓名,及三门课成绩,总,平均...
}person[10];int i;printf("请输入10名学生的学号、姓名、及三门成绩:");for(i=0;i<10;i++)printf("学号:%d 姓名:%s 成绩:%d %d %d 平均成绩:%d\\n",person[i]->number,person[i]->name[20],person->score[0],person->score[1],person->score[2],person->score[3]);} ...
...学号、姓名、三门课的成绩,从键盘输入10个学生数据,要求打印出3...
printf("第%d个学生的信息:\\n",i+1);scanf("%s%s%d%d%d",stud[i].id,stud[i].name,&stud[i].score[0],&stud[i].score[1],&stud[i].score[2]);stud[i].total=stud[i].score[0]+stud[i].score[1]+stud[i].score[2];} for(i=0;i<SIZE;i++){ for(j=0;j<SIZE-i-...
c++输入10个学生的学号、姓名和成绩,计算并输出他们的平均成绩,并且将...
printf("姓名:%s 学号:%s 成绩:%.2f\\n", stu[i].name, stu[i].num, stu[i].value);} int main(void){ STUDENT stu[10];int i;float _ave = 0.0;for (i = 0; i < 10; ++i){ printf("输入第%d个学生信息(姓名,学号,成绩):", i+1);scanf(" %s %s %f",...
C++编程题:输入10个学生的姓名、学号和成绩,输出学生的成绩等级和不及格...
include<iostream> include<string> using namespace std;const int n=10;string name[n]; \/\/定义姓名数组 int num[n],score[n]; \/\/定义学号和成绩数组 int main(){int i;void input_data();int_data();cout<<endl<<"不及格名单:"<<endl;for(i=0;i<n;i++)if(score[i]<60...