题目要求:
有3个候选人,每个选民只能投票选一人,要求编一个统计选票的程序,先后输入被选人的名字,最后输出各人得票结果。
解题思路:
设一个结构体数组,数组中包含3个元素
每个元素中的信息应包括候选人的姓名(字符型)和得票数(整型)
输入被选人的姓名,然后与数组元素中的“姓名”成员比较,如果相同,就给这个元素中的“得票数”成员的值加1
输出所有元素的信息

说明:
(1)定义结构体数组一般形式是
① struct 结构体名{成员表列} 数组名[数组长度];
② 先声明一个结构体类型,然后再用此类型定义结构体数组:结构体类型  数组名[数组长度];如:struct Person  leader[3]; (2)对结构体数组初始化的形式是在定义数组的后面加上:
={初值表列}; 如:
struct Person  leader[3]= {"Li",0,"Zhang",0,"Fun",0}; 
/* Note:Your choice is C IDE */
#include "stdio.h"struct Person{char name[20];//姓名int count;//票数
}a[3]={"li",0,"zhang",0,"liu",0};//a[3]为全局的结构体数组void main()
{int i,j;char b[20];printf("请输入10个人的投票的结果:");for(i=0;i<10;i++){scanf("%s",b);//读人10个人的投票姓名for(j=0;j<3;j++)if(strcmp(b,a[j].name)==0)//stcmp函数比较字符串的大小,若两个字符串大小相等则结果为0a[j].count++;//人数累加}for(i=0;i<3;i++)printf("%5s:%d\n",a[i].name,a[i].count);
}结果显示:
请输入10个人的投票的结果:li li li li liu liu zhang zhang zhang zhangli:4
zhang:4liu:2

题目要求:
有n个学生的信息(包括学号、姓名、成绩),要求按照成绩的高低顺序输出各学生的信息。
解题思路:
用结构体数组存放n个学生信息,采用选择法对各元素进行排序(进行比较的是各元素中的成绩)。

/* Note:Your choice is C IDE */
#include "stdio.h"struct Student{int num; char name[20]; float score; };//注意,分号不能省略 void main()
{struct Student stu[5]={{10101,"Zhang",78},{10103,"Wang",98.5},{10106,"Li",86.9},{10108,"Ling",73.5},{10110,"Fun",100}  };//分号不可省略const int n=5;// const是一个C语言的关键字,它限定一个变量不允许被改变。//若有30个人则 const  int  n=30;//const  int  n=5;相当于在最上面直接定义,即 #define N 5//一旦被修饰就不能被赋值改变。当const int n=5之后再令n=9就是错的int i,j;struct Student k;for(i=0;i<n-1;i++){//冒泡排序for(j=0;j<n-1-i;j++)if(stu[j+1].score>stu[j].score){k=stu[j];stu[j]=stu[j+1];stu[j+1]=k;}}for(i=0;i<n;i++)printf("%6d %8s %6.2f\n",stu[i].num,stu[i].name,stu[i].score);
}结果显示:10110      Fun 100.0010103     Wang  98.5010106       Li  86.9010101    Zhang  78.0010108     Ling  73.50
上面代码进行优化   1
函数的调用
/* Note:Your choice is C IDE */
#include "stdio.h"
void sort(struct Student stu[],int n);
struct Student{long int num; char name[20]; float score; };
void main()
{struct Student stu[3]={{2019010,"Meng",69.7},{2019012,"Liu",78.9},{2019014,"Zhang",98.5}};int i,n=3;sort(stu,n);for(i=0;i<n;i++)printf("%6ld %8s %6.1f\n",stu[i].num,stu[i].name,stu[i].score);
}
void sort(struct Student stu[],int n){int i,j;struct Student k;for(i=0;i<n-1;i++){//冒泡排序for(j=0;j<n-1-i;j++)if(stu[j+1].score>stu[j].score){if(stu[j+1].score>stu[j].score){k=stu[j];stu[j]=stu[j+1];stu[j+1]=k;}}}
}结果显示:
2019014    Zhang   98.5
2019012      Liu   78.9
2019010     Meng   69.7
上面的代码进行优化     2
函数的调用
#include "stdio.h"
void sort(struct student src[3],int n);//全局函数声明
struct student{long xuehao;char name[20];int grade;};//全局结构体类型 声明
int main()
{int i;struct student src[3]={//定义结构体类型数组,并且初始化 {2019052,"a",69},{2019051,"b",78},{2019053,"c",70}   };sort(src,3);for(i=0;i<3;i++){printf("%ld %8s %d\n",src[i].xuehao,src[i].name,src[i].grade);}
}
void sort(struct student src[3],int n)
{int j=0,i=0;
struct student temp;for(j=2;j>0;j--){for(i=0;i<j;i++){if(src[i+1].grade>src[i].grade){ temp=src[i];src[i]=src[i+1];src[i+1]=temp;//数组整体换}}}
}结果显示:
2019051        b 78
2019053        c 70
2019052        a 69

定义struct结构体数组相关推荐

  1. c/c++教程 - 1.10 结构体 使用typedef定义struct结构体 结构体数组 结构体指针 结构体嵌套 结构体做函数参数 结构体const

    十二.结构体 (1)结构体定义和使用 基本概念:结构体属于用户自定义的数据类型,允许用户存储不同的数据类型. 参考视频:https://www.bilibili.com/video/BV1et411b ...

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

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

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

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

  4. c++ day 4 结构体定义,结构体数组

    用户自定义的数据类型 结构体定义 :struct 结构体名 {结构体成员列表} 结构体变量创建:(这里的struct可以省略) 1.struct 结构体名 变量名 2.struct 结构体名 变量名 ...

  5. java数组的声明学号姓名线性结构_定义一个结构体数组,包含学号,姓名,成绩三哥成员项。...

    sorry,没时间另外写一个了.类似题目的回答很多的.个人建议结构体操作用链表方式,如果用数组方式的话,对于有效记录数的掌控不方便,比如插入要考虑数组长度不能越界,删除要考虑有效记录的减少等等.输入字 ...

  6. java结构体构建学生 学号_(1)定义一个结构体数组,存放10个学生的学号,姓名,三门课的成绩; 急求...

    展开全部 之前写过一个记录学生学号,年龄,体重e5a48de588b63231313335323631343130323136353331333365636132,名字的数组结构,你可以稍作修改就可以 ...

  7. MATLAB中的结构体数组(struct)学习笔记

    不要失却热情,不要丢掉冠军的心! MALAB中的结构体(struct)数组学习笔记 前言 1. 版本 2. 关键词 一.Struct结构体数组概述 二.Struct结构体数组基本用法 1. 结构体的创 ...

  8. Matlab 结构体数组 基础知识 struct(自学文档)

    struct 结构体数组 全页展开 说明 结构体数组是使用名为字段的数据容器将相关数据组合在一起的数据类型.每个字段都可以包含任意类型的数据.可以使用 structName.fieldName 格式的 ...

  9. 【C语言】结构体指针与结构体数组

    目录 一.结构体指针 二.结构体数组 1.结构体数组的定义 2.结构体数组的初始化 3.结构体数组的引用 4.结构体数组指针 一.结构体指针 与一般指针类似结构体也可以使用结构体指针进行引用使用.结构 ...

最新文章

  1. IndexError: too many indices for array
  2. Opne GL ES 学习心得!
  3. 基于visual Studio2013解决C语言竞赛题之0710排序函数
  4. 【PAT - 1014】福尔摩斯的约会(简单模拟)
  5. g++编译时的常用选项说明
  6. 高效实用Kafka-深入理解Kafka启动配置(使用kafka自身内置Zookeeper)
  7. 这枚纸币为什么这么贵?
  8. Gym 101206L Daylight Saving Time 根据年月日计算星期
  9. Android世界第一个activity启动过程
  10. c++接口与实现的分离
  11. 简单ajax跨域请求
  12. 动态的顺序表(C语言实现)
  13. PHP面向对象之方法重写
  14. 灰度图像--频域滤波 概论
  15. word修改后没保存/打开了自动保存没有恢复
  16. 图解|网络究竟是如何运作的?
  17. 有哪些可以用于语文作文中的高级词汇?
  18. java初级程序员考试_Java初级程序员必须要知道的10个基础面试题
  19. lua_pcall 函数详解
  20. react hooks(dva) echarts 实现中国地图省份数据分布显示

热门文章

  1. s5pv210开发板linux ac97 alsa驱动
  2. 【树莓派】树莓派小车(一)小车配件选购及安装(多图)
  3. UE4-(UI)第六十四课Grid Panel
  4. 集成学习--基础概述
  5. 中国需要“信用卡式”的生活:把明天的钱,拿到今天来用
  6. 2021年1-9月墨天轮最受欢迎的20篇技术文章
  7. MCE公司:MCE 中国生命科学研究促进奖获奖论文集锦二
  8. 拒绝美式政治正确,他负气出走,选择来中国
  9. vue2.0有关时间戳 时间的公共方法(YYYY-MM-DD HH:mm:ss,YYYY-MM-DD,HH:mm:ss,转化为 utc 时间,utc转标准时间,相对时间,日/月/年 时:分:秒)
  10. c语言scanf中 作用,c语言中scanf的用法