首页 > 编程知识 正文

C语言函数返回结构体,c语言结构体作为函数参数

时间:2023-05-03 14:52:28 阅读:218939 作者:4618

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

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

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

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

用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, "jmddm", 69.5, 61.5, 91.5}, {1002, "痴情的大山", 92.5, 67.5, 81.5}, {1003, "xrpdys", 79.5, 67.5, 86.5 }, {1004, "活泼的身影", 83.0, 75.5, 84.0}, {1005, "kqdbl", 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 %.1fn", 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;}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。