#define STNUM 3 //学生数
struct student{
char id[10]
char name[10]
float course[3]
}
int main(){
student st[STNUM] //student结构体数组
int i,j
printf("==========录入信息==========\n")
for(i=0i<STNUMi++){
printf("请输入第%d个学生的信息\n",i+1)
printf("请输入学号:")
scanf("%10s",&st[i].id)
printf("请输入姓名:")
scanf("%10s",&st[i].name)
printf("请输入3门课的成绩:")
for(j=0j<3j++){
scanf("%f",&st[i].course[j])
sum[i] += st[i].course[j]
}
}
printf("==========学生信息==========\n")
for(i=0i<STNUMi++){
printf("-----------学生%d----------\n",i+1)
printf("学号:%s\n",st[i].id)
printf("姓名:%s\n",st[i].name)
printf("3门课的成绩:")
for(j=0j<3j++){
printf("%.1f ",st[i].course[j])
sum[i] += st[i].course[j]
}
printf("\n")
}
return 0
}
现实生活中存在的大部分对象具有不同的属性,需要用不同的数据类型去描述。类如,一个公司员工的信息包括工号,姓名,性别,年龄,工资等。这些属性都是有联系的,因为他们属于同一个员工。为了能够表示同一个对象的多种属性,C语言给出了另一种构造数据类型——结构体。利用结构体能够将不同类型的数据组合在一起,用来描述上述具有不同属性的对象,从而解决实际问题。
在程序中使用结构体,首先要对结构体进行定义。定义结构体类型的一般形式为:
"struct"是关键字,是结构体的标志;"结构体名"是用户定义的标识符,要符合C语言的标识符命名规则;各成员的数据类型可以是基本类型,也可以是构造类型。例如:
定义了一个结构体类型,结构体类型名是employee,该结构体由5个成员组成。
定义的结构体类型是一种数据类型。它和系统提供的标准数据类型(如int,char,float,double等)具有相同的地位和作用,只不过结构体类型需要用户自己指定而与,而标准数据类型由系统定义。
1)结构体类型的定义是程序语句,因此一定注意右花括号后面的分号不能丢。
2)结构体中的成员可以定义成不同的数据类型,他们不是变量,因此成员名可以与程序中其他变量同名,不同结构体中的成员也可以同名。
3)定义结构体类型,只是定义一种和基本类型地位相同的新的数据类型,不是定义的变量。
4)定义好一个结构体类型后,可以将其看作是与int,char,和float等数据类型一样的一个新的数据类型,其中并无具体数据,系统对之也没有分配实际的内存单元。为了能够在程序中使用结构体类型的数据,应当定义结构体类型的变量,并在其中存放具体的数据。
程序运行情况如下:
如果输入:90.5,80.5
结果如下:average=85.5
程序运行结果如下:
student1:10001,Liu,F,18,75.0
student2:10002,Zhang,F,18,75.0
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)