通过函数理解——结构体

函数涉及到
1、结构体的定义
2、结构体的赋初值
3、结构体的成员的调用方式
4、结构体做功能函数的参数
5、结构体做功能函数的类型

/*求n个学生中成绩最高的学生的信息并输出。*/

#include "stdio.h"
struct student                       //定义一个名student的结构体类型,一般定义在程序开头部分
{   	
	int num; 
	char *name;                      //不能定义为char name;因为一般名字不止一个字符;
				                     //这里还可以定义为char name[N],但这里的N必须和后面出现的最长名字的字符数相等,
									 //相对于指针变量而言,还是不方便
	char sex; 
	float score; 
};                                   //;不能缺少
struct student fun(struct student *pstud,int n)//结构体指针做函数参数,
                                               //同时由于函数类型是struct,所以函数的返回值也是结构体
{  	
	struct student *p,*p_max,*p_end;
   	//int j;
   	float max=0;
   	p=pstud;
   	p_max=p;
  	p_end=p+n;
  	for ( ;p<p_end;p++)
		if (p->score>max)  //通过指针p->score调用结构体中的成员
     	{   
			max=p->score;   
			p_max=p;  
		}
  	return (*p_max);
}

void main ()
{
  	int i,j;
	struct student pp,stu[5]={   {101,"Zhao lei",'M',45},	//定义变量的同时,给结构体成员赋值
								{102,"Sun hui",'M',62.5},
								{103,"Li fang",'F',92.5},
								{104,"Wang hua",'F',89.5}
							};
								//非法赋值语句——stu[4]={105,"zou fang",'f',100};
								//正确的赋值方式——必须一个一个将其赋值给相应的成员,如下
	stu[4].num=105;
	stu[4].name="zou fang";     //定义结构体变量后,给结构体成员赋值
	stu[4].sex='f';
	stu[4].score=100;

  	pp=fun (stu,5);				//调用函数与赋值
  	printf ("%d %5s %3c %5.1f\n",pp.num, pp.name,pp.sex,pp.score);
								//pp.score——结构体成员的一般调用方式
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值