874复习第七天-结构体

32 篇文章 2 订阅

关于结构体的题目

#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;
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

向上Claire

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值