桂 林 理 工 大 学
实 验 报 告
实验八 结构体
一、实验目的:
掌握结构体类型的概念,结构体类型定义方法。
掌握结构体对象的说明方法及使用。
掌握结构体数组、结构体指针的使用方法。
二、实验环境:
PC + Windows +Visual C++6.0
三、实验内容:
(主要内容的文字及贴图)
一本图书的基本信息包括:编号,书名,作者名,出版社名称,价格,请定义结构体类型描述图书的信息,并在主函数中定义两个图书对象,从键盘输入相关信息,判断哪本书的价格更高,输出价格高的图书的书名和出版社名称。
#include
#define N 2
struct book
{int num;
char a[20],b[20],c[20];
int price;
}b[N];
int main()
{int i,m,j;
for(i=0;ib[j+1].price) m=j;
else m=j+1;
}
printf("%s--%s",b[m].a,b[m].b);
return 0;
}
一名学生的基本信息包括:学号、姓名、年龄、6门课程的成绩、总分,请定义结构体类型描述学生的信息,其中6门课程的成绩要求使用数组进行描述。在此基础上,定义一个数组,存放N名学生的信息,编写程序实现如下功能:
输入N名学生的相关信息,其中总分不用输入,根据6门课程的成绩计算而得。
输出总分最高的学生的学号和姓名。
输入待查找的学号,在N名学生中进行查找,如果找到该学号的学生信息,则输出该学生的所有信息,如果没有找到,则输出提示“Not Found!”。
对数组中的N名学生按照总分进行降序排列,排序之后,总分最高的学生信息放在数组的第0个元素,总分第二高的学生信息放在数组的第1个元素,......输出排序之后的数组信息。
#include
#define N 2
struct student
{char num[6];
char name[8];
float score[6];
float avr;
int age;
}stu[N];
int main()
{int i,j,maxi;
float sum,max,average;
for(i=0;imax)
{
max=sum;
maxi=i;
}
}
printf("The highest score is : stduent %s,%s",stu[maxi].num,stu[maxi].name);
return 0;
}
3. 教材291页习题第2题。(只要求实现复数的和、积运算)
#include
struct Student
{
int num,age,i;
float score[6],sum[100];
char name;
};
int main()
{ struct Student s[100];
int i,j,N,sum[j]={0},summ;
scanf("%d",&N);
for(i=1;i<=N;i++)
{
scanf("%d",&s[i].num);
scanf("%s",&s[i].name);
scanf("%d",&s[i].age);
for(j=0;j<6;j++)
{
scanf("%d",&s[i].score[j]);
sum[j]+=s[i].score[j];
}
if(sum[j]>sum[0])
summ=sum[j];
}
printf("%dn%s",s[j].num,s[j].name);
}
四、心得体会(150字以上):
通过本次实验,熟悉掌握掌握结构体类型的概念,结构体类型定义方法。掌握结构体对象的说明方法及使用.掌握结构体数组、结构体指针的使用方法。