1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 华北水利水电C 语言实验11 华北水利水电大学C语言实验11.doc

华北水利水电C 语言实验11 华北水利水电大学C语言实验11.doc

时间:2021-02-28 05:44:21

相关推荐

华北水利水电C 语言实验11 华北水利水电大学C语言实验11.doc

华北水利水电大学C语言实验11

C语言程序设计实验报告

实验11、结构体程序设计

班级 156 学号 15613 姓名 吴浩

【实验目的】

(1)掌握结构体类型的概念、定义和使用;

(2)掌握结构体数组、结构体指针的定义和使用;

【实验内容及步骤】

1、输入5位同学的一组信息,包括学号、姓名、数学成绩、计算机成绩,求得每位同学的平均分和总分,然后按照总分从高到低排序,排序用函数实现。

【程序代码】:

#include

#define N 5

struct Student

{int num;char name[20];float score[2];float aver;float add;};

int main()

{int i;

void input(struct Student stu[]);

void sort(struct Student stu[]);

struct Student stu[N],*p=stu;

input(p);

printf("各个同学的平均成绩和总成绩分别是:\n");

for(i=0;i

{printf("%s\n%5.2f\n%5.2f\n",stu[i].name,stu[i].aver,stu[i].add);

printf("\n");}

sort(p);printf("按成绩高低排序后为:\n");for(i=0;i

printf("学号:%d 姓名:%s 总成绩:%5.2f\n",stu[i].num,stu[i].name,stu[i].add);

return 0;}

void input(struct Student stu[])

{int i;

printf("请输入各个学生的信息:学号、姓名、两门课的成绩:\n");

for(i=0;i

{scanf("%d%s%f%f",&stu[i].num,stu[i].name,&stu[i].score[0],&stu[i].score[1]);stu[i].aver=(stu[i].score[0]+stu[i].score[1])/2;

stu[i].add=(stu[i].score[0]+stu[i].score[1]);

}}

void sort(struct Student stu[])

{struct Student t;

int i,j,k;

for(i=0;i

{k=i;

for(j=i+1;j

if(stu[j].add>stu[k].add)

k=j;

t=stu[k];stu[k]=stu[i];stu[i]=t;

}}

【运行结果】

2.定义一个结构体变量(包括年、月、日)。编写一个函数days,计算该日期在本年中是第几天(注意闰年问题)。由主函数将年月日传递给days函数,计算之后,将结果传回到主函数输出。

【程序代码】

#include

typedef struct

{ int year;

int month;

int day;}date;

int days(date d)

{ int num = 0;

int m, da, i;

if ((d.year %4 == 0 && d.year %100!=0)||(d.year % 400 == 0))

{

for (m = 1; m <= d.month ; m++)

{

if (m == 2)

da = 29;

else if (m==4||m==6||m==8||m==11) da = 30;

else da = 31; for (i = 1; i <= da;i++)

{

num++;

if ( m == d.month && i == d.day )

return num; } } }

else

{

for (m = 1; m <= d.month ; m++)

{

if (m == 2) da = 28;

else if (m==4||m==6||m==8||m==11)

da = 30;

else

da = 31;

for (i = 1; i <= da;i++)

{

num++;

if ( m == d.month && i == d.day )

return num;

}}}}

int main()

{ d

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。