C语言结构体:从函数返回结构体变量的值(附习题)

博客围绕C语言结构体展开,介绍了结构体定义的两种书写方式,包括直接定义结构体变量和用typedef定义数据类型时在主函数中声明变量的不同写法,还给出一道习题,要求根据输入姓名查找学生信息并输出结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C语言结构体:从函数返回结构体变量的值

在C语言中,结构体的定义有两种书写方式。

  1. 结构体变量的定义:
struct student
{
	char name[10], num[10];
	int score;
};

此时在主类mian()方法中声明变量时必须要使用 struct student stu1

  1. 用typedef定义数据类型:
typedef struct student
{
	int iNum;                 
	char cName[10];          
	double fCh, fMath, fEng;   
} STUDENT;

此时在主类main()方法中声明变量时使用 STUDENT stu1

习题:
程序的功能是:已知5名学生信息,从键盘输入学生姓名,根据姓名查找该学生是否存在,如果存在则输出学生信息,否则输出不存在提示。

#include <stdio.h>
#include <string.h>

/* User Code Begin(考生可在本行后添加代码,例如结构体类型的定义、函数原型声明等,行数不限) */
typedef struct student            //由main函数中的声明可知是用typedef定义
{
	int iNum;                 
	char cName[10];              
	double fCh, fMath, fEng;   
} STUD;

STUD *FindByName(STUD sTranscript[], int n, char name[16]);    
/* User Code End(考生添加代码结束) */

int main(void)
{
	STUD sTranscript[] = { {1001, "张三丰", 69.5, 61.5, 91.5},  {1002, "李云龙", 92.5, 67.5, 81.5}, 
		{1003, "郭 靖",  79.5, 67.5, 86.5 },  {1004, "苗翠花", 83.0, 75.5, 84.0}, 
		{1005, "张无忌", 65.5, 81.5, 71.0} };
	STUD *stu;
	char name[16];
	
	printf("请输入你要查找的学生姓名: ");
	gets(name);

	stu = FindByName(sTranscript, 5, name);  //调用函数查找信息
	if (stu)
	{
		printf("\n查找的学生信息为: ");
		printf("%d %s %.1f %.1f %.1f\n", stu->iNum, stu->cName, stu->fCh, stu->fMath, stu->fEng);
	}
	else
	{
		printf("\n你要查找的学生不存在!\n");
	}

	return 0;
}

/* User Code Begin:考生在此后完成自定义函数的设计,行数不限 */
STUD *FindByName(STUD sTranscript[], int n, char name[16])
{
	int i;
	for (i = 0; i < n; i++)
	{
		if (strcmp(sTranscript[i].cName, name) == 0)   //字符串比较是否相同
		{
			return &sTranscript[i];       //返回该学生信息在数组中存放地址值
		}
	}
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值