1.不多说上代码

#include<stdio.h>
typedef enum
{female,male
}Sextype;
typedef struct
{Sextype sextype;int Number;
}School;
typedef struct
{int MaleSum;int FemaleSum;int AllSum;
}Num;
Num Sumscore(School* sn, int n);
int main()
{Sn shool[3] = { {female,10},{male,15},{female,20} };Num num;num = Sumscore(shool,3);printf("male=%d,female=%d,all=%d\n", num.MaleSum,num.FemaleSum,num.AllSum);return 0;
}
Num Sumscore(School* sn,int n)
{Num temp = {0,0,0};for (int i = 0; i < n; i++){if (sn[i].sextype == female)temp.FemaleSum += sn[i].Number;elsetemp.MaleSum += sn[i].Number;temp.AllSum += sn[i].Number;}return temp;
}

如果初学者对typedef这个函数的使用不熟悉的话,下面这串代码去掉typedef

#include<stdio.h>
enum Sextype
{female,male
};
struct School
{enum Sextype sextype;int Number;
};
struct Number
{int MaleSum;int FemaleSum;int AllSum;
};
struct Number Sumscore(struct School* sn, int n);
int main()
{struct School school[3] = { {female,10},{male,15},{female,20} };struct Number num;num = Sumscore(school,3);printf("male=%d,female=%d,all=%d\n", num.MaleSum,num.FemaleSum,num.AllSum);return 0;
}
struct Number Sumscore(struct School* school,int n)
{struct Number temp = {0,0,0};for (int i = 0; i < n; i++){if (school[i].sextype == female)temp.FemaleSum += school[i].Number;elsetemp.MaleSum += school[i].Number;temp.AllSum += school[i].Number;}return temp;
}

结果运行效果截图:

运行没问题,这里解释一下如何把结构体数组作为参数传入函数,其实在C语言中,任何数组都可以用首地址加上数组长度的方式传入函数,结构体数组也是数组,同样可以以首地址加上数组长度的方式传入函数,需要注意是仅仅只有别把传入的数据类型给搞错了。(我想学到结构体这个地方了,指针应该比较熟悉了吧,如果不理解为什么首地址加上长度可以表示数组的原因,可以搜索数组传入函数这个问题)

关于C语言结构体数组如何作为参数传入函数相关推荐

  1. C语言试题五十一之已知学生的记录是由学号和学习成绩构成,n名学生的数据已存入s结构体数组中。请编写函数fun,该函数的功能是:找出成绩最高的学生记录,通过形参返回主函数(规定只有一个最高分)。

    1. 题目 请编写一个函数void function(Student a[], int n, Student *s),其功能时:已知学生的记录是由学号和学习成绩构成,n名学生的数据已存入s结构体数组中 ...

  2. C语言 | 结构体数组

    C语言结构体数组概述 一个结构体变量中可以存放一组有关联的数据,如一个学生的学号.姓名.成绩等数据,如果有10个学生的数据需要参加运算,显然应该用数组,这就是结构体数组. 结构体数组与之前介绍的数值型 ...

  3. c语言字符结构数组初始化,C语言结构体数组初始化问题

    C语言结构体数组指定初始化器时,下面的三种方法,只有第三种可以,但是第一,二种,我看不出语法上哪错了,编译器DEVc++会报错 [Error] C99 designator 'num_insur' o ...

  4. C语言编程题—结构体—设计程序,已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体数组中。请编写函数 fun:找出成绩最低的学生记录,通过形参返回主函数(规定只有一个最低分

    4 C语言编程题--结构体 **设计程序,已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体数组中.请编写函数 fun,函数的功能是:找出成绩最低的学生记录,通过形参返回主函数(规定只有 ...

  5. C语言编程>第十二周 ③ 已知学生的记录由学号和学习成绩构成,M名学生的数据已存入a结构体数组中。请编写函数fun,该函数的功能是:找出成绩最高的学生记录,通过形参返回主函数。

    已知学生的记录由学号和学习成绩构成,M名学生的数据已存入a结构体数组中.请编写函数fun,该函数的功能是:找出成绩最高的学生记录,通过形参返回主函数(规定只有一个最高分).已给出函数的首部,请完成该函 ...

  6. C语言编程>第十三周 ⑧ 已知学生的记录由学号和学习成绩组成,M名学生的数据已存入stu结构体数组中。请编写函数fun,该函数的功能是:

    例题:已知学生的记录由学号和学习成绩组成,M名学生的数据已存入stu结构体数组中.请编写函数fun,该函数的功能是:找出成绩最高的学生记录,通过形参返回主函数(规定只有一个最高分).已给出函数的首部, ...

  7. c语言 结构体数组的赋值

    c语言 结构体数组的赋值 //**创建结构体** #include<stdio.h> struct Class{int id;char name[10]; }; //******结构体数组 ...

  8. c语言如何为结构数组赋值,C语言结构体数组同时赋值的另类用法

    说到C语言结构体数组的同时赋值,许多人一想就会想到用以下的这种方法,咱们来写一个例子: #include struct student { int a; int b ; int c ; }; stru ...

  9. C语言结构体数组,结构体数组的定义,结构体数组的输出,结构体的应用

    结构体数组 结构体数组的定义: 结构体数组格式:声明变量类型 数组名称[数组长度] //定义一个结构体数组名为a,它里面包含有5个元素,每一个元素都是一个结构体变量 Wor a[5]={}; #inc ...

最新文章

  1. SAP零售行业解决方案初阶 3 - WB01 创建Site Master
  2. 程序员没有天才:暴风影音首席架构师鲍金龙访谈
  3. Error:No resource identifier found for attribute 'appComponentFactory' in packag
  4. 「数据库系列一」为什么要用数据库?
  5. 如何节约数据中心空间
  6. 中兴通讯遭大股东减持逾两千万股 盘中跌逾6%
  7. html 忽略标签属性,限制文本一定数目的字符忽略HTML标签/属性
  8. Python脚本覆盖率分析方法介绍
  9. easydarwin ffmpeg
  10. html设置字体仿宋GB2312,怎么设置仿宋gb2312字体,仿宋gb2312字体设置教程
  11. 软考——中级软件设计师备考建议
  12. xp计算机u盘重装系统,传授如何使用u盘安装xp系统呢?教你安装步骤
  13. Nao机器人运行B-human代码之开始篇 1
  14. 试题 算法训练 预测身高
  15. 如何正确计算LINUX内存使用率
  16. js可以打开mat文件吗_企业微信最大可以传多大文件?企业微信发送文件有限制吗?...
  17. 面试官最常问的10道测试用例面试题及答案,每1题都很经典
  18. P528 List接口常用实现类的对比及源码分析
  19. 怎样修改日立uax规格表_日立电梯UAX电气原理图纸维修调试资料手册规格表.zip-3-1敷线检查.doc...
  20. 直播|是事实还是贩卖焦虑?IT行业也偏爱“小鲜肉”

热门文章

  1. 工具推荐 | Xshell全版本解密工具(包括Xshell7)——SharpXDecrypt
  2. 排球计分系统——Java
  3. ucore_lab2实验报告
  4. HTML5 canvas 制作动画原理
  5. GItLib环境搭建
  6. 串口通信操作STM32f4单片机LED 蜂鸣器(io)
  7. js获取当前物理地址
  8. windows 用户变量和系统变量的区别
  9. python零基础入门书籍-零基础python入门书籍推荐读哪些书?
  10. 【学习记录】IMU内参标定:Allan方差与代码