关于结构体的题目
#include<stdio.h>
struct student{
char name[20];
int score;
}stu,*p;
int main( )
{
p=&stu;//p指针指向stu的地址
printf("Enter name:");
gets(stu.name);
printf("Enter score:");
scanf("%d",&stu.score);
printf("Output:%s,%d\n",(*p).name,p->score); //括号不能掉
return 0;
}

定义
C语言提供了一种数据结构,它可以把不同类型数据项(也可以是相同类型数据项),组织成一个整体,这就是结构类型。

结构体类型的定义

结构类型:Student_Info
struct是关键字,表示定义一个结构类型
Struct_Info是结构名。
结构允许把不同类型的数据组织成一个整体
结构体类型的定义格式


结构体是一种构造类型,它由多个其他类型的成员组合而成,因此这种类型的变量所占内存的大小是它所包含的成员所占内存大小的和。




结构体变量的定义
间接定义法
先定义结构类型,再定义结构变量



直接定义法
在定义结构体类型的同时,定义结构体变量。










计算学生5门课的平均成绩,最高分和最低分
#include<stdio.h>
struct score
{
float grade[5];
float avegrade,maxgrade,mingrade;
};
int main()
{
int i;
struct score m;
printf("input the grade of five course:\n");
for(i=0;i<5;i++)
scanf("%f",&m.grade[i]);
m.avegrade=0;
m.maxgrade=m.grade[0];
m.mingrade=m.grade[0];
for(i=0;i<5;i++)
{
m.avegrade+=m.grade[i];
m.maxgrade=(m.grade[i]>m.maxgrade?m.grade[i]:m.maxgrade);
m.mingrade=(m.grade[i]<m.mingrade?m.grade[i]:m.mingrade);
}
m.avegrade/=5;
printf("average=%5.1f maxgrade=%5.1f mingrade=%5.1f\n",m.avegrade,m.maxgrade,m.mingrade);
return 0;
}










#include<stdio.h>
#include<string.h>
struct person{
char name[20];
int count;
}leader[3]={"Li",0,"zhang",0,"wang",0};
int main()
{
int i,j;
char leader_name[20];
while(1)
{
scanf("%s",leader_name);
if(strcmp(leader_name,"0")==0)//字符串进行比较
break;
for(j=0;j<3;j++)
if(strcmp(leader_name,leader[j].name)==0)//合法
leader[j].count++;
}
for(i=0;i<3;i++)
printf("%5s:%d\n",leader[i].name,leader[i].count);
return 0;
}


4487

被折叠的 条评论
为什么被折叠?



