结构体实验

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1. 定义一个结构体,如下:

struct Student

{

int num;

char name[20];

int score[3];

}; 结构体中个元素分别为学号,姓名和一个记录三门课程成绩的数组。

1)在主函数中初始化一个结构体变量,然后输出该结构体变量各元素的值。

2)定义两个函数Input()和Output(),分别完成为结构体变量初始化和输出结构体变量的值的功能,其中初始化要求从键盘终端输入数据。

答案1

#include

struct Student

{

int num;

char name[20];

int score[3];

};

void main()

{

struct Student s;

scanf("%s",);

scanf("%d",&(s.num));

for(i=0;i<3;i++)

{

scanf("%d",&(s.score[i]));

}

printf("%s\n",);

printf("%d\n",s.num);

for(i=0;i<3;i++)

{

printf("\n%d ",s.score[i]);

}

}

#include

struct Student

{

int num;

char name[20];

int score[3];

};

void main()

{

void Output(struct Student* stu);

void Input(struct Student* stu);

struct Student *p,s;

p=&s;

Input(p);

Output(p);

}

void Input( struct Student* stu)

{

int i;

printf("学号:");

scanf("%d",&(stu->num));

printf("\n姓名:");

scanf("%s",stu->name);

printf("\n三门课程成绩:");

for(i=0;i<3;i++)

{

scanf("%d",&(stu->score[i]));

}

}

void Output(struct Student* stu)

{

int i;

printf("学号:");

printf("%d",stu->num);

printf("\n姓名:");

printf("%s",stu->name);

printf("\n三门课程成绩:");

for(i=0;i<3;i++)

{

printf("%d ",stu->score[i]);

}

}

2. 基于上面结构体类型,

struct Student

{

int num;

char name[20];

int score[3];

float avg;

};定义一个结构体数组,struct Student s_info[3],用来管理三个学生的信息,初始化该数组后,做如下计算:

1)计算出每个学生三门课程的总的平均成绩。

2)找出总分最高的学生,并输出学生的学号、姓名、3门课程的成绩和平均成绩。

答案:

#include

struct Student

{

int num;

char name[20];

int score[3];

float avg;

};

void main()

{

void average_best(struct Student stu[],int n);

struct Student s[3]={{511,"令狐冲",95,86,74},{512,"黄蓉",100,87,93},{515,"小龙女",88,83,65}};

average_best(s,3);

}

void average_best(struct Student stu[],int n)

{

int i,j,sum=0,avg,max=0,tag;

for(i=0;i

{

sum=0;

for(j=0;j<3;j++)

sum+=stu[i].score[j];

stu[i].avg=sum/3.0;

if(max

{

max=sum;

tag=i;

}

}

printf("总分最高的学生的信息为\n学号:%d\n姓名:%s\n三门课程成绩:%d %d %d\n 平均成绩:%5.2f\n",stu[tag].num,stu[tag].name,stu[tag].score[0],stu[tag].score[1],stu[tag].score[2],stu[ tag].avg);

}

相关文档
最新文档