任务描述
本关任务:从键盘输入两个学生的学号,姓名和成绩(整数),分别存入结构体中,输出成绩较高的学生的学号,姓名和成绩。

测试输入:
14308100238 xiaowang 99
15408122584 xiaoli 78
预期输出:
14308100238 xiaowang 99

测试输入数据说明:
输入包含两行,每行包含学生的学号(11位的整数),姓名(字符串,长度不超过20)和成绩(整数)。

#include<stdio.h>
/*********Begin*********/
int main()
{struct data{char num[20];char name[20];int score;}s1,s2;scanf("%s%s%d",s1.num,s1.name,&s1.score);scanf("%s%s%d",s2.num,s2.name,&s2.score);if(s1.score>s2.score){printf("%s %s %d\n",s1.num,s1.name,s1.score);}else{printf("%s %s %d\n",s2.num,s2.name,s2.score);}return 0;
}/*********End*********/

任务描述
本关任务:有n个学生的信息(包括学号,姓名,成绩),要求按照成绩的高低顺序输出学生的信息。
测试输入:

5
10101 Zhang 78
10103 Wang 98
10106 Li 86
10108 Ling 73
10110 Sun 100
预期输出:

10110 Sun 100
10103 Wang 98
10106 Li 86
10101 Zhang 78
10108 Ling 73
测试输入数据说明:

第一行为整数n表示有n个学生, 1<=n<=200。接下来包含n行数据,每行数据代表一个学生的信息,按学号(11位的整数),姓名(字符串,长度不超过20)和成绩(整数)。

#include<stdio.h>
/*********Begin*********/
int main()
{int n;struct data{char num[20];char name[20];int score;}t;//定义结构体t作为中间变量,一边在下面程序中使用; scanf("%d",&n);struct data s[n];//定义结构体数组; for(int i=0;i<n;i++){scanf("%s%s%d",s[i].num,s[i].name,&s[i].score);}for(int i=0;i<n;i++)//使用冒泡排序 {for(int j=0;j<n-1;j++){if(s[j].score<s[j+1].score){t=s[j];s[j]=s[j+1];s[j+1]=t;}}}for(int i=0;i<n;i++){printf("%s %s %d\n",s[i].num,s[i].name,s[i].score);}return 0;
}/*********End*********/

任务描述
本关任务:有三个候选人,每个选民只能投一票,写一程序,用结构体存储数据,求出得票结果。

三个候选人为”Li“, “Zhang“,”Sun“。

测试输入:
10
Li
Li
Sun
Zhang
Zhang
Sun
Li
Sun
Zhang
Li

预期输出:
Li:4
Zhang:2
Sun:3

测试输入数据说明:
输入数据第一行包含一个整数n,表示有n个人投票。接下来的每一行包含某个候选人的名字。

#include<stdio.h>
#include<string.h>
/*********Begin*********/
struct porson{char name[20];int num;
}leadr[3]={"Li",0,"Zhang",0,"Sun",0};//定义结构体数组并初始化 /*********End**********/
int main(void)
{/*********Begin*********/int i,j,n;char leader_name[20];//定义字符串数组 scanf("%d",&n);for(i=0;i<n;i++){scanf("%s",leader_name);//输入所选的候选人名单 for(j=0;j<3;j++){if(strcmp(leader_name,leadr[j].name)==0)leadr[j].num++;}}for(i=0;i<3;i++){printf("%s:%d\n",leadr[i].name,leadr[i].num);}/*********End**********/return 0;
}

任务描述
本关任务:使用结构体储存学生信息(包括学号,姓名,3门课程成绩,总分),要求实现对学生信息修改和删除操作,最多50名学生。
测试输入:

10 3
1 Siyu 90 90 90
2 Amy 60 70 94
3 Jack 60 60 98
4 Jack 77 90 60
5 Banana 60 60 40
6 White 60 60 60
7 Pinkman 60 60 60
8 Fring 60 60 70
9 Ehrmantraut 80 63 61
10 Schrader 99 66 100
1 Jack
2 1 100 100 100
3 10
测试输入数据说明:
输入一个n,q,标书下面n行则是n个学生的信息,再下q行则是对应的操作。

1 name //为根据名字查询操作
2 sno num1 num2 num2 //为修改分数操作,修改学号为sno的3门成绩
3 sno //为删除操作
预期输出:

3 Jack 60 60 98 218
4 Jack 77 90 60 227
1 Siyu 100 100 100 300
2 Amy 60 70 94 224
3 Jack 60 60 98 218
4 Jack 77 90 60 227
5 Banana 60 60 40 160
6 White 60 60 60 180
7 Pinkman 60 60 60 180
8 Fring 60 60 70 190
9 Ehrmantraut 80 63 61 204
10 Schrader 99 66 100 265
1 Siyu 100 100 100 300
2 Amy 60 70 94 224
3 Jack 60 60 98 218
4 Jack 77 90 60 227
5 Banana 60 60 40 160
6 White 60 60 60 180
7 Pinkman 60 60 60 180
8 Fring 60 60 70 190
9 Ehrmantraut 80 63 61 204
预期输出数据说明:
每次修改操作则输出全部的学生信息,查询操作则输出查询的学生的信息。

#include<stdio.h>
#include<string.h>
int Count;
struct student{char sno[20],name[20];int math,english,chinese,sum;
};void print(struct student stu){printf("%s %s %d %d %d %d\n",stu.sno,stu.name,stu.math,stu.english,stu.chinese,stu.sum);
}void query_stu(struct student s[],char *name){/*********Begin*********/for(int i=0;i<Count;i++){if(strcmp(s[i].name,name)==0){s[i].sum=s[i].math+s[i].english+s[i].chinese;printf("%s %s %d %d %d %d\n",s[i].sno,s[i].name,s[i].math,s[i].english,s[i].chinese,s[i].sum);}}/*********End**********/
}void delete_stu(struct student s[],char *sno){/*********Begin*********/int k=0;for(int i=0;i<Count;i++){if(strcmp(s[i].sno,sno)==0){k=i;for(int j=k;j<Count-1;j++){s[j]=s[j+1];}}}/*********End**********/
}void update_stu(struct student s[],char *sno,int math,int english,int chinese){/*********Begin*********/for(int i=0;i<Count;i++){if(strcmp(s[i].sno,sno) == 0){s[i].math=math;s[i].english=english;s[i].chinese=chinese;s[i].sum=s[i].math+s[i].english+s[i].chinese;}else{s[i].sum=s[i].math+s[i].english+s[i].chinese;}}/*********End**********/
}int main(void)
{int n,q;struct student students[50];scanf("%d%d",&n,&q);Count=n;for(int i=0;i<n;i++){/*********Begin*********/scanf("%s%s%d%d%d",students[i].sno,students[i].name,&students[i].math,&students[i].english,&students[i].chinese);/*********End**********/}while(q--){int op;scanf("%d",&op);char sno[20],name[20];if(op==1){scanf("%s",name);query_stu(students,name);}else if(op==2){int a,b,c;scanf("%s%d%d%d",sno,&a,&b,&c);update_stu(students,sno,a,b,c);for(int i=0;i<Count;i++)print(students[i]);}else{scanf("%s",sno);delete_stu(students,sno);for(int i=0;i<Count-1;i++)print(students[i]);}}return 0;
}

【EDUcoder实训作业题解】结构体相关推荐

  1. 头歌c语言实训作业题解

    头歌c语言实训作业题解 持续更新 C语言程序设计编辑与调试环境 1.打印输出 Hello World 2.打印输出图形 3.求三个数的最大值 4.熟悉C语言调试环境 C语言中最基本的输入输出 1.看看 ...

  2. 【Java】第7章 Java 类和对象 头歌Educoder实训作业(七)

    第1关:练习-Java类和对象之类的声明之复数运算 任务描述 本关任务:求两个复数相加后的结果. 两个复数之间相加的运算法则:实部与实部相加,虚部与虚部相加. 关于复数的定义,可以自行查阅,本实训不做 ...

  3. 【Java】第11章 JAVA 异常处理 头歌Educoder实训作业(十一)

    第1关:学习-Java异常处理之try-catch之异常捕获 任务描述 本关任务:求给定两个数的商,并捕获除数为 0 的异常. 相关知识 为了完成本关任务,你需要掌握: 1.什么是异常: 2.如何捕获 ...

  4. 计算机基础知识实训答案,《计算机应用基础》实训作业答案

    <<计算机应用基础>实训作业答案.doc>由会员分享,可免费在线阅读全文,更多与<<计算机应用基础>实训作业答案>相关文档资源请在帮帮文库(www.wo ...

  5. 机器学习 --- 决策树(educode实训作业)

    引言:本文主要对educoder机器学习 --- 决策树的实训作业进行讲解,创造不易!请您点点关注,点点收藏叭!!! 目录 第1关:什么是决策树 任务描述 相关知识 引例 决策树的相关概念 编程要求 ...

  6. 计算机基础与应用23页思考与实训,《计算机基础与应用》实训作业三

    <计算机基础与应用>实训作业(三) 实训练习一.数据库技术基础综合应用 [实训要求] 1.能够建立和维护Access数据库 2.能够使用SQL中的四条基本语句:INSERT.UPDATE. ...

  7. 第六次实训作业异常处理

    第六次实训作业异常处理 编写一个类ExceptionTest,在main方法中使用try-catch-finally语句结构实现: 在try语句块中,编写两个数相除操作,相除的两个操作数要求程序运行时 ...

  8. C语言实训作业PPT,C语言实训作业.docx

    C语言实训作业.docx . C语言通识教育实训指导书 实训课 (2 学时)指导教师何天成2016 年月日前言C 语言是现代最流行的通用程序设计语言之一,它既具有高级程序设计语言的优点,又具有低级程序 ...

  9. 头歌实践教学平台答案(Java实训作业答案)

    搜集整理了一份最新最全的头歌(EduCoder)Java实训作业答案,分享给大家.(EduCoder)是信息技术类实践教学平台.(EduCoder)涵盖了计算机.大数据.云计算.人工智能.软件工程.物 ...

  10. PAT甲级1141 PAT Ranking of Institutions :[C++题解]结构体、排序、哈希表、结构体构造函数、结构体内写函数、排名

    文章目录 题目分析 题目来源 题目分析 来源:acwing 分析:和下面这题是一道题: PAT甲级1137 Final Grading:[C++题解]结构体.排序.哈希表.结构体构造函数.结构体内写函 ...

最新文章

  1. RSync实现文件备份同步
  2. 在博客园添加Lisp(或其它)代码高亮
  3. PHP与SQL注入***(实战篇五)
  4. 听说你想去大厂看学姐,带你看看拼多多运营面经
  5. DVSDK/EZSDK软件框架简介
  6. 文献记录(part17)--VARCLUST: clustering variables using dimensionality reduction
  7. Spring Cloud Config服务端配置细节(一)
  8. java同一个包中,类之间的的调用
  9. 声纹识别中的召回和精度概念
  10. mysql行转列sql函数_(转)行变列SQL语句(MSSQL) - jack - 博客园
  11. Bzoj 3831: [Poi2014]Little Bird
  12. 关于 安装串口CH340、CH341驱动预安装成功问题
  13. 2022最新软考考试时间已公布
  14. Tomcat9的安装和配置
  15. 【Verilog基础】Verilog语法之标量(Scalar)与向量(Vector)
  16. linux系统安装佳能打印机驱动,fedora21怎么安装佳能打印机驱动?
  17. 服务器登录显示sa登录失败,U8应用服务器配置时提示登录SA失败发现是由于未能找到存储过程‘sp_password’的解决方案...
  18. 基于容器的虚拟化资源调度系统的架构设计
  19. 华电研究生学习和工作总结(2021.11.08-2021.11.12)-围城
  20. python 归一化使用

热门文章

  1. 【零基础学Python】Day12 Python循环语句
  2. 理解DCT与DST【一】:离散傅里叶变换
  3. Windows常见错误
  4. R语言使用:符号生成向量数据、使用pie函数可视化饼图、自定义设置饼图色彩为彩虹色
  5. python txt转为csv
  6. 韩寒《三重门》精彩语录2
  7. 如何用Matlab求不定积分
  8. linux使用wine安装程序,使用wine安装软件 怎么使用wine安装软件
  9. Android开发方向,我们如何选择?
  10. 人月到底有多少神话色彩