今日学习结构体章节。记录一点点
1.声明类型的同时定义变量
struct 结构体名
{
成员列表
}变量名列表;
---------------------------------------------------------------------------
struct Student //声明一个结构体类型 struct Student
{
int num;
char name[20];
char sex;
} students1,students2; //结构体变量
2.不指定类型名而间接定义结构体类型变量
struct
{
成员列表
}变量名列表;
---------------------------------------------------------------------------
附代码应用
#include<stdio.h>
int main()
{
struct Student //声明结构体类型 struct Student
{
int num;
char name[20] ;
float score;
}students1,students2; // 定义两个结构体变量
scanf("%d %s %f",&students1.num,students1.name,&students1.score); // 输入学生1的数据
scanf("%d %s %f",&students2.num,students2.name,&students2.score); // 输入学生1的数据
printf("the higher score is:\n");
if(students1.score>students2.score){
printf("%d %s %6.2f",students1.num,students1.name,students1.score);
}else if (students1.score<students2.score){
printf("%d %s %6.2f",students2.num,students2.name,students2.score);
}else{
printf("%d %s %6.2f",students2.num,students2.name,students2.score);
printf("%d %s %6.2f",students2.num,students2.name,students2.score);
}
}
结构体数组
1.有3个候选人每个选民只能投票选一个人,要求编写一个统计选票的程序,先后输入被选人的名字,最后输出各人得票结果。
代码如下:
#include<string.h>
#include<stdio.h>
struct Person
{
char name[20]; //候选人姓名
int count; //候选人得票数
}leader[3]={"Li",0,"Zhang",0,"Sun",0}; // 此处3的意思是 定义了3个结构体数组
int main(){
int i,j;
char leader_name[20]; //定义字符数组
for(i=1;i<=4;i++)
{
scanf("%s",leader_name); //输入所选候选人姓名
for(j=0;j<3;j++){
if(strcmp(leader_name,leader[j].name) == 0){
leader[j].count++;
}
}
}
printf("\nResult:\n") ;
for(i=0;i<3;i++){
printf("%5s: %d\n",leader[i].name,leader[i].count); // 读取结构体中的成员变量时,leader[0].name 时,是在0开始读取的
}
return 0;
}