《程序设计基础-c语言》杨莉 刘鸿翔
ISBN-978-7-03-032903-5
p165
习题6

3.输入10个学生的信息(包括学号、姓名、性别、年龄、成绩)组成结构体数组,分别统计男、女人数,计算全体学生的平均年龄、平均成绩,并将高于平均成绩的学生信息输出
思路:

  1. 使用两个结构体stuinfcnt1分别存储学生信息统计信息
  2. 使用for循环计算平均年龄和平均成绩
  3. 并用for循环嵌套if判断高于平均成绩的学生,并输出信息
#include<stdio.h>
#define MAX 10
struct count
{int mcnt;      /*女生人数*/ int fcnt;      /*男生人数*/ int ysum;      /*年龄总和*/ int ssum;      /*成绩总和*/ float yaver;   /*年龄平均*/ float saver;   /*成绩平均*/
}cnt1;
struct stuinf
{int xuehao;        /*学号*/char name[20];    /*姓名*/char sex;     /*性别*/int year;     /*年龄*/float score;  /*成绩*/
}stu[MAX];
int main(void)
{int i;/*接受10位学生信息输入*/printf("输入%d的学生信息:\n",MAX);for(i=0;i<MAX;i++){scanf("%d %s %c %d %f",&stu[i].xuehao,stu[i].name,&stu[i].sex,&stu[i].year,&stu[i].score);}/*判断*/for(i=0;i<MAX;i++){if(stu[i].sex=='f'||stu[i].sex=='F') /*'f'||'F',男生人数+1*/ {cnt1.fcnt++;}else if(stu[i].sex=='m'||stu[i].sex=='M')  /*'m'||'M',女生人数+1*/ {cnt1.mcnt++;}cnt1.ysum+=stu[i].year;      /*求年龄总和*/cnt1.ssum+=stu[i].score; /*求成绩总和*/}cnt1.yaver=cnt1.ysum/MAX;        /*计算年龄平均*/cnt1.saver=cnt1.ssum/MAX;        /*计算成绩平均*//*输出平均年龄、平均成绩*/printf("\n男生:%4d 女生:%4d 平均年龄:%4.f 平均成绩:%4.2f\n",cnt1.fcnt,cnt1.mcnt,cnt1.yaver,cnt1.saver);printf("\n输出大于平均成绩的学生信息:\n");for(i=0;i<MAX;i++){if(stu[i].score>cnt1.saver) /*大于平均成绩,即输出学生信息*/{printf("\n%d %s %c %d %.2f\n",stu[i].xuehao,stu[i].name,stu[i].sex,stu[i].year,stu[i].score);}}
}

使用结构体数组统计男、女人数,计算全体学生的平均年龄、平均成绩,并将高于平均成绩的学生信息输出相关推荐

  1. C语言试题五十二之学生的记录由学号和成绩组称个,n名大学生得数据已在主函数中放入结构体数组a中,请编写函数fun,它的功能时:按分数的高低排列学生的记录,高分在前。

    1. 题目 请编写一个函数void function(Student a[], int n),其功能时:学生的记录由学号和成绩组称个,n名大学生得数据已在主函数中放入结构体数组a中,请编写函数fun, ...

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

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

  3. c语言结构体函数排序,(为什么不能给分?)结构体数组插入排序的函数有关问题,...

    当前位置:我的异常网» C语言 » (为什么不能给分?)结构体数组插入排序的函数有关 (为什么不能给分?)结构体数组插入排序的函数有关问题, www.myexceptions.net  网友分享于:2 ...

  4. c语言动态结构体数组

    学生信息管理系统中可以用到结构体数组进行数据的输入输出 typedef struct student//定义结构体 {char stu_number[20];char stu_name[20];flo ...

  5. c++结构体总结(结构体定义,结构体数组,结构体指针,结构体嵌套结构体,结构体做函数参数,结构体中 const使用场景)

    看完b站黑马程序员之后的借鉴和笔记 1.什么是结构体,有什么作用? 在C/C++中,结构体是用户定义的数据类型.它可以把几种不同类型的数据项集合成结构体这样一个单一类型. 2. 结构体定义和使用 #i ...

  6. 结构体数组的赋值方法(常用的三种,包含字符串)

    目录 一.按照成员变量进行赋值(麻烦,好理解,字符串赋值需要strcpy) 二.对数组整体进行赋值.(一次性需要把所有的都添加进去,不需要strcpy) (1) 在声明数组的时候,进行赋值 (2)对有 ...

  7. 【HDU】1251统计难题 (字典树:二维数组,结构体数组,链表,map)

    使用二维数组或者结构体数组都可以,但是在计数的时候有一点点小区别 一.结构体数组 #include <cstdio> #include <cstring> #include & ...

  8. 【C++】【一】结构体数组

    demo7:函数份文件编写 swap.h #include <iostream> using namespace std;//函数的声明 void swap(int a, int b); ...

  9. C++ 基础入门 之 结构体/结构体定义和使用/结构体数组/结构体指针/ 结构体嵌套结构体/结构体做函数参数/结构体中 const 使用场景/结构体案例

    C++ 基础入门 之 结构体/结构体定义和使用/结构体数组/结构体指针/ 结构体嵌套结构体/结构体做函数参数/结构体中 const 使用场景/结构体案例 目录 一.简单介绍 二.结构体定义和使用 三. ...

最新文章

  1. Struts2+Spring2框架开发的菜鸟绝对能看得懂的用户登录程序 (2)
  2. python接口测试实战_Python接口测试实战5(下) - RESTful、Web Service及Mock Server
  3. Spring Boot 几条最佳实践!
  4. Visual Studio 2010中添加App_Code文件夹注意事项
  5. 【系统设计】发现类的方法
  6. python 判断当前系统的Python编译器类型
  7. 设计模式入门-工厂模式
  8. iOS开发进阶-实现多线程的3种方法
  9. word——VBA编程
  10. 白话区块链 之 12 - 未花费事务输出 (UTXO) 是什么?
  11. 表格类产品标签的制作
  12. mybatisplus分页单页pageSize最大设置
  13. python编写抢红包程序软件_如何科学的抢红包:写个程序抢红包
  14. 【Linux】 ubuntu16.04系统使用印象笔记
  15. (个人学习笔记)利用ensight进行EDEM耦合FLUENT后处理
  16. UE4模型轮廓描边及轮廓发光
  17. python:http.server --- HTTP 服务器
  18. Wine Mono 环境安装并运行.Net WPF
  19. 计算机音乐monster,【MJJ】【MJ音乐汇总系列】Monster 怪物
  20. crash处理core文件

热门文章

  1. 用记事本解决js中文乱码问题
  2. AttributeError: module ‘tensorflow‘ has no attribute ‘Session‘错误解决
  3. Java面向对象知识概括归纳与总结
  4. php 读取php.ini,php7 读取php.ini[4]
  5. vs2019 MFC 中 cannot open include file 'afxres.h' 问题解决方法
  6. Java源码详解六:ConcurrentHashMap源码分析--openjdk java 11源码
  7. 报错解决:ERROR: Failed to format E:; DiskPart errorlevel -2147212243.
  8. 过拟合的原因以及解决办法(深度学习)
  9. php趣味小程序,php常用小程序
  10. Specification使用in