给你个思路,将每个输入的个人信息判断一下,分别录入两个结构体数组,

再将两个结构体数组分别冒泡排序,分别输出

在你的代码上改了下,有好多可以优化的地方,

例如可以将冒泡排序封装成一个函数

给代码给你参考一下

#include

#include

struct student{

char name[20]; //姓名

char sex[10]; //性别

int age; //年龄

};

int main()

{

int i,j,n;

int countM=0,countF=0;

struct student s1;

printf("Input n:");

scanf("%d",&n);

struct student boy[n+1]; //分别定义两个结构体数组

struct student girl[n+1];

for(i=1;i<=n;i++){

scanf("%s%s%d",s1.name,s1.sex,&s1.age);

if(strcmp(s1.sex,"boy")==0){ //男生存在男生的结构体数组中,女生同理

strcpy(boy[countM].name,s1.name);

strcpy(boy[countM].sex,s1.sex);

boy[countM].age=s1.age;

countM++; //统计男生的个数(后面排序用到)

}

if (strcmp(s1.sex,"girl")==0) {

strcpy(girl[countF].name,s1.name);

strcpy(girl[countF].sex,s1.sex);

girl[countF].age=s1.age;

countF++;

}

}

for ( i=0;i

for (j=0;j

if (boy[j].age>boy[j+1].age){

struct student tem;

strcpy(tem.name,boy[j].name);

strcpy(tem.sex,boy[j].sex);

tem.age=boy[j].age;

strcpy(boy[j].name,boy[j+1].name);

strcpy(boy[j].sex,boy[j+1].sex);

boy[j].age=boy[j+1].age;

strcpy(boy[j+1].name,tem.name);

strcpy(boy[j+1].sex,tem.sex);

boy[j+1].age=tem.age;

}

}

}

for ( i=0;i

for ( j=0;j

if (girl[j].age>girl[j+1].age){

struct student tem;

strcpy(tem.name,girl[j].name);

strcpy(tem.sex,girl[j].sex);

tem.age=girl[j].age;

strcpy(girl[j].name,girl[j+1].name);

strcpy(girl[j].sex,girl[j+1].sex);

girl[j].age=girl[j+1].age;

strcpy(girl[j+1].name,tem.name);

strcpy(girl[j+1].sex,tem.sex);

girl[j+1].age=tem.age;

}

}

}

for (i=0;i

printf ("%s ",boy[i].name);

}

printf ("\n");

for (i=0;i

printf ("%s ",girl[i].name);

}

return 0;

c语言中表示男性别的字符是什么,C语言结构中根据性别分类按年龄升序输出姓名...相关推荐

  1. 在c语言中 不可表示的字符是什么,C 语言易错点综合

    C语言原则:一切工作自己负责. C语言哲学:语言中的任何部分都不应该通过隐藏的运行程序来实现. 1.当执行一个运算时,如果它的一个运算符是有符号的,而另一个运算符是无符号的,那么C语言会隐式地将有符号 ...

  2. c语言中字符串数组应用,C语言中字符变量字符串和字符数组应用.doc

    C语言中字符变量字符串和字符数组应用 字符变量(type`char`?字符串(string)和字符数组(type`char`arrary)是C语言中非常重要的结构成分,也是应用编程中常发生混淆?导致错 ...

  3. c语言中宏定义的字符替换#define M(x,y,z) x*y+z

    C语言中宏定义的字符替换问题 例子: 在c语言中定义如下宏 #define M(x,y,z) x*y+z 给定如下程序 #include<stdio.h> #include<stdl ...

  4. c语言中函数名可不可以由用户命名,C语言中变量名及函数名的命名规则与驼峰命名法...

    在程序设计中,变量名.函数名.数组名等统称为标识 符.简单地说,标识符就是一个名字.除库函数的函数名由系统定义外,其余都由用户自定义.C语言规定,标识符只能由字母(a-z,A-Z).数字 (0-9). ...

  5. c语言中不能编译,为什么`int;`可以在C语言中很好地编译,而在C ++中却不能?

    考虑以下程序(请参见此处的现场演示). #include int main(void) { int ;  // Missing variable name puts("Surprise&qu ...

  6. 【C语言进阶深度学习记录】二十六 C语言中的字符串与字符数组的详细分析

    之前有一篇文章是学习了字符和字符串的,可以与之结合学习:[C语言进阶深度学习记录]十二 C语言中的:字符和字符串 文章目录 1 字符串的概念 1.1 字符串与字符数组 1.2 字符数组与字符串代码分析 ...

  7. 在C语言中怎样定义一个字符串并输入输出

    在C语言中没有字符串类型,用字符数组处理字符串 字符数组定义:char 数组名 [常量表达式][常量表达式] 说明:一维字符数组,用于存储和处理一个字符串 .二维字符数组,用于同时存储和处理多个字符串 ...

  8. c语言中减号算一个字符吗,C语言中指针的加减运算

    char arr[3]; printf("arr:\n%d\n%d\n%d\n", arr, arr + 1, arr + 2); char *parr[3]; printf(&q ...

  9. c语言中的编程英文怎么看,在C语言中使用英文字符

    前面我们多次提到了字符串,字符串是多个字符的集合,它们由" "包围,例如"http://c.biancheng.net"."C语言中文网". ...

最新文章

  1. kali linux网络配置
  2. 【机器学习】机器学习的经典算法
  3. DevOps和容器:本地or云端,如何选择?
  4. 图说数据中心新风节能技术
  5. 【python】排序算法的稳定性冒泡排序(画图详细讲解)
  6. 测试必备:单元测试测试类,以帮助匿名管理调查的类为例详解--白盒测试
  7. php.ini修改php上传文件大小限制的方法
  8. 【图频处理】基于matlab GUI界面环图像处理与音乐播放系统【含Matlab源码 185期】
  9. 手机修改ntp服务器地址,手机修改ntp服务器ip地址
  10. 【预测模型-RF预测】基于随机森林算法实现数据回归预测附matlab代码
  11. smartbi问题_SAP BO的五大尴尬,Smartbi就是HANA用户的“菜”
  12. 优秀笔记软件盘点—好看、强大的可视化笔记软件、知识图谱工具
  13. 腾讯云硬盘挂载宝塔命令
  14. 平板电脑Viewpad10安装win7与Android双系统
  15. Idea中GsonFormat插件安装
  16. 滴滴开源小程序框架 Mpx
  17. dpabi viewer使用
  18. 喵的Unity游戏开发之路 - 玩家控制下的球的滑动
  19. 局域网arp攻击_什么是arp攻击?arp攻击的解决方法有哪些?
  20. parser.add_argument metavar

热门文章

  1. Windows上最好用的5款epub阅读器
  2. bs基于vue推理小说旧书置换系统
  3. 生成图片验证码(Pillow)
  4. 基于php的老年医疗保健管理系统
  5. 存储基础知识之固态硬盘
  6. python模拟行星运动_Java课程设计——模拟行星运动
  7. 用半角的特殊符号代替全角的特殊符号
  8. 2022微信大数据挑战赛复盘,rank60+菜鸟
  9. 用HTML实现邮箱的注册页面
  10. 《给研究生的学术建议》13——研究设计