zzulioj 1185: 添加记录(结构体专题)

2023-05-16

题目描述

有一学生成绩表,包括学号、姓名、3门课程成绩。已知该成绩表按学号升序排序。请编程实现,添加一个新的学生信息,且使成绩表仍按学号有序;若待添加的学号与已有学号重复,则输出错误信息,拒绝添加。

输入

首先输入一个整数n(1<=n<=100),表示学生人数;
然后输入n行,每行包含一个学生的信息:学号(12位)、姓名(不含空格且不超过20位),以及3个整数,表示3门课成绩,数据之间用空格隔开。
最后一行输入一个待添加的学生信息,包括学号、姓名和3门课成绩

输出

若待添加的学号与已有学号重复,则输出只有一行“error!”;否则,输出n+1行,即添加后的成绩单信息。

样例输入 

3
541207010188 Zhangling 78 95 55
541207010189 Wangli 87 99 88
541207010191 Fangfang 68 76 75
541207010190 Lilei 68 79 82  
样例输出 Copy

541207010188 Zhangling 78 95 55
541207010189 Wangli 87 99 88
541207010190 Lilei 68 79 82
541207010191 Fangfang 68 76 75  

 解:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct student{
	char num[13];
	char name[21];
	int x;
	int y;
	int z;
}student;
int main(){
	int n;
	scanf("%d",&n);
	getchar();
	student *a,new;
	a=(student*)malloc(sizeof(student)*(n+1));
	for(int i=0;i<n;i++){
		scanf("%s%*c%s%d%d%d",a[i].num,a[i].name,&a[i].x,&a[i].y,&a[i].z);
		getchar();
	}
	scanf("%s%*c%s%d%d%d",new.num,new.name,&new.x,&new.y,&new.z);
	int flag=0;
	for(int i=0;i<n-1;i++){
		if(strcmp(a[i].num,new.num)<0&&strcmp(a[i+1].num,new.num)>0){//如果待插入学号大于当前学号且小于下一个学号(该条件无法判断待差学号在首尾的情况,所以下面单独判断
			for(int j=n-1;j>i;j--){
				a[j+1]=a[j];
			}
			a[i+1]=new;
			flag=1;
		}
	}
	if(strcmp(a[0].num,new.num)>0){//如果待插入序列在a[0]位置
		for(int i=n-1;i>-1;i--){
			a[i+1]=a[i];
		}
		a[0]=new;
		flag=1;
	}
	if(strcmp(a[n-1].num,new.num)<0){//如果待插入序列在a[n-1]位置
		a[n]=new;
		flag=1;
	}
	if(flag==0)
	printf("error!\n");
	else
	for(int i=0;i<=n;i++)
	printf("%s %s %d %d %d\n",a[i].num,a[i].name,a[i].x,a[i].y,a[i].z);
	free(a);
	return 0;
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

zzulioj 1185: 添加记录(结构体专题) 的相关文章

  • Python读取xml文件

    关于python读取xml文章很多 xff0c 但大多文章都是贴一个xml文件 xff0c 然后再贴个处理文件的代码 这样并不利于初学者的学习 xff0c 希望这篇文章可以更通俗易懂的教如何使用python 来读取xml 文件 什么是xml
  • 单片机控制第一个外设-LED灯-第1季第6部分-朱有鹏-专题视频课程

    单片机控制第一个外设 LED灯 第1季第6部分 3352人已学习 课程介绍 本课程是 朱有鹏老师单片机完全学习系列课程 第1季第6个课程 xff0c 主要讲解LED的工作原理和开发板原理图 实践编程等 xff0c 通过学习目的是让大家学会给
  • Python——闭包详解

    在函数编程中经常用到闭包 闭包是什么 xff0c 它是怎么产生的及用来解决什么问题呢 给出字面的定义先 xff1a 闭包是由函数及其相关的引用环境组合而成的实体 即 xff1a 闭包 61 函数 43 引用环境 想想Erlang的外层函数传
  • Python 中的类与继承

    类的定义以及实例的建立 Python中 xff0c 类通过 class 关键字定义 例如最简单的一个类定义可以为 xff1a class Person object pass Python 的编程习惯 xff0c 类名以大写字母开头 xff
  • Python中的type和object详解

    这篇博客主要描述Python的新风格对象 new style objects xff0c 如下 xff1a lt type 39 type 39 gt 和 lt type 39 object 39 gt 分别是什么 xff1f 用户自定义的
  • Python装饰器大详解

    一 作用域 在python中 xff0c 作用域分为两种 全局作用域和局部作用域 全局作用域是定义在文件级别的变量 函数名 而局部作用域 xff0c 则是定义函数内部 关于作用域 xff0c 我们要理解两点 xff1a a 在全局不能访问到
  • 我的Python学习笔记:私有变量

    一 私有变量的定义 在Python中 xff0c 有以下几种方式来定义变量 xff1a xx xff1a 公有变量 xx xff1a 单前置下划线 xff0c 私有化属性或方法 xff0c 类对象和子类可以访问 xff0c from som
  • python三大神器之virtualenv

    pip virtualenv fabric通称为pythoner的三大神器 virtualenv virtualenv 用来建立一个虚拟的python环境 xff0c 一个专属于项目的python环境 用virtualenv 来保持一个干净
  • python——常用功能之文本处理

    在生活 工作中 xff0c python一直都是一个好帮手 在python的众多功能中 xff0c 我觉得文本处理是最常用的 下面是平常使用中的一些总结 环境是python 3 3 0 基础 在python中 xff0c 使用str对象来保
  • 没有GPS模块无人机无法解锁解决方法测试及其他无法解锁APM疑难杂症

    目录 前言 xff1a 通常 xff0c APM飞控无人机组装后必须进行加速度计校准 遥控器校准 罗盘校准等 xff0c 才能解锁 但是有的APM飞控没有内置罗盘 xff0c 也没有安装外置罗盘 xff0c 在此情况下 xff0c 无法进行
  • 深度学习入门(六)——softmax函数的改良

    输出层的设计 机器学习的问题大致可以分为分类问题和回归问题 分类问题是数据属于哪一个类别的问题 比如 xff0c 区分图像中的人是男性还是女性的问题就是分类问题 而回归问题是根据某个输入预测一个 xff08 连续的 xff09 数值的问题
  • 四、FreeRTOS学习之 队列

    目录 1 定义 2 函数介绍 1 队列创建 2 队列删除 3 写队列 4 读队列 3 实例 1 定义 队列是freertos所有任务通信或同步之外的机制 xff0c 队列包含多个数据称为长度 xff0c 每个数据大小相同 xff0c 创建队
  • 静态和动态控制数码管-第1季第7部分-朱有鹏-专题视频课程

    静态和动态控制数码管 第1季第7部分 2313人已学习 课程介绍 本课程是 朱有鹏老师单片机完全学习系列课程 第1季第7个课程 xff0c 全面讲解了静态数码管 无38译码器式动态数码管 有38译码器式动态数码管等各种数码管驱动方式 xff
  • MapReduce原理讲解(带源码)

    在MapReduce 中运行的job 类里 xff0c 最先出现的就是FileInputFormat 类 xff0c 它继承于InputFormat 一 InputFormat xff1a 这是一个重要的抽象类 xff0c 其中包括两个抽象
  • 弯管机程序使用三菱FX系列 PLC和昆仑通态触摸屏,也可以用三菱F940系列触摸屏

    弯管机程序使用三菱FX系列 PLC和昆仑通态触摸屏 xff0c 也可以用三菱F940系列触摸屏 ID 85200637609016631猫猫工控
  • [Vue warn]:Missing required prop: “value” 报错的解决办法

    报错场景 在vue中使用element ui的el select标签报错 Vue warn Missing required prop 34 value 34 出现问题的原因 1 el select标签没有使用v model绑定值 lt 没
  • 常用组合逻辑电路及MSI组合电路模板的应用——下篇

    一 加法器 计算机诞生的起因便是计算导弹轨道 xff0c 因此计算是必经之路 如何实现两个二进制数的相加呢 xff1f 在C语言操作符一节中 xff0c 我们曾经利用与运算和异或运算 xff0c 加上循环移位 xff0c 实现了两个二进制数
  • 物联网平台搭建的全过程介绍(二)——物联网平台通信思维导图

    目前物联网平台很多 xff0c 本例以阿里云物联网平台为例 xff0c 介绍一下物联网平台通信的思维导图和实现的步骤 xff0c 本文仅做功能的宏观描述 xff0c 具体操作会在后续文章内详细介绍 其他物联网原理基本大同小异 思维导图如下图
  • web 前端的浏览器

    1 浏览器及内核 web浏览器是用于读取HTML文件 xff0c 并将其作为网页显示 浏览器最重要的部分或其核心是渲染引擎 xff0c 我们一般称为内核 xff1b 内核的作用负责对网页语法的解释并渲染网页 xff1b 五大浏览器 xff1
  • C++的第一个代码“Hello World!”

    代码展示 include lt iostream gt include lt cstdio gt using namespace std int main printf 34 Hello World n 34 printf 34 1 Def

随机推荐

  • C.刷oj1026有感

    1 if嵌套 if 条件1 语句1 if 条件2 语句2 if 条件3 语句3 语句4 诸如这样嵌套 xff0c 要先判断条件1是否成立 xff0c 如果成立 xff0c 执行语句1 xff0c 再继续下面操作 如果条件1不成立 xff0c
  • C.刷oj1037有感

    不能判断浮点数相等或不相等 xff01 因为浮点数是对实数的近似表达 如 double y if y 61 61 0 这样是错的 xff01 1 判断浮点数是否为0的方法 fabs y lt 1e 10 2 判断两个浮点数是否相等的方法 f
  • 逻辑或、与运算的短路

    假定i 61 5 j 61 5 i 43 43 xff1c xff1d 5 j 43 43 xff1c xff1d 5 首先这个表达式的结果为1 真 xff0c 但执行完这个表达式后i的值为6 xff0c j的值不变 xff0c 为5 xf
  • LED点阵-第1季第8部分-朱有鹏-专题视频课程

    LED点阵 第1季第8部分 1818人已学习 课程介绍 本课程是 朱有鹏老师单片机完全学习系列课程 第1季第8个课程 xff0c 讲解了16 16LED点阵的驱动方式和文字显示 本课程的学习目标是理解点阵式LED屏幕的驱动方式 74HC59
  • C语言声明变量时的小细节

    声明变量时不能连续赋值 xff0c 例如 int a 61 b 61 0 这样编译器会报错 xff1a b没有声明 可以在声明变量时给一个变量赋值 int a 61 0 int a b c d 61 0 或 int a b c 61 0 d
  • C.for循中表达式的省略

    省略第一个表达式 for 表达式2 表达式3 注意第一个分号不能省 xff01 xff01 xff01 省略第二个表达式 for 表达式1 表达式3 死循环 省略第三个 for 表达式1 表达式2 最后的表达式的分号就不要了 可以在循环体内
  • C语言新收获

    if x 语句3 表达式是变量 xff0c 如果x不等于0 xff0c 则条件判断结果为真 xff0c 执行语句3 if 1 语句4 表达式是非0整数 条件判断结果为真 xff0c 执行语句4 if 0 语句5 表达式是整数0 xff0c
  • C语言新收获

    若a 61 3 xff0c b 61 2 xff0c c 61 1 xff0c 则 d 61 a gt b xff0c 由于a gt b为真 xff0c 因此关系表达式a gt b的值为1 xff0c 所以赋值后d的值为1 f 61 a g
  • C语言swith语句小细节

    1 swtich 中的 里的数据只能为整形或字符型 xff0c 不能为浮点型 xff01 2 swith x xff5b case 1 语句1 case 2 xff1a 语句2 case 3 语句3 xff1b break case 4 语
  • switch语句每个csse后面可以跟多个值吗

    如果今天是星期三 xff0c 后天就是星期五 xff1b 如果今天是星期六 xff0c 后天就是星期一 我们用数字1到7对应星期一到星期日 给定某一天 xff0c 请你输出那天的 后天 是星期几 输入格式 xff1a 输入第一行给出一个正整
  • c学习笔记

    指针之间可以比较大小 xff0c 前提是两个指针指向同一数组 如 char a 20 xff1b char p1 61 a 43 1 char p2 61 a 43 2 则p2 gt p1
  • zzulioj1150

    数数多少个整数 题目描述 小明的老师给小明出了一道题目 xff1a 数数一篇文章出现了多少个数字 xff0c 请你帮帮他吧 输入 输入一个字符串 xff0c 由空格 英文字母 数字组成 xff0c 以回车结束 xff0c 长度小于1000
  • 1152: 二分搜索

    题目描述 在有序序列中查找某一元素x 输入 首先输入一个正整数n n lt 61 100000 xff0c 表示该序列有n个整数 xff0c 然后按从小到大的顺序输入n个整数 xff1b 接着是一个正整数m xff0c 表示有m次查找 xf
  • C语言反思提醒自己

    例如 xff1a char fun char p char s 101 return s 这样将不能正确返回字符串s xff0c 因为在离开fun 函数后该内存空间将不再存在 xff0c 应该使用malloc函数申请内存 xff0c 该函数
  • 按键-第1季第9部分-朱有鹏-专题视频课程

    按键 第1季第9部分 1716人已学习 课程介绍 本课程是 朱有鹏老师单片机完全学习系列课程 第1季第9个课程 xff0c 综合解决了独立按键和矩阵式按键的处理方法 xff0c 涉及到 xff1a IO的输入输出 按键抖动和消抖 中断的引入
  • C语言反思提醒自己

    int a scanf 34 d 34 amp a 当键入07时 xff0c a中存的是7 xff0c 自动舍弃前导0
  • zzulioj1168(账单)

    题目描述 每到月末 xff0c 小明就会对这个月的支出账单进行整理和统计 如今电脑已经普及大学校园 xff0c 所以小明想让电脑帮忙做这件事情 聪明的你就为小明编一个程序来完成这件事情吧 输入 多实例测试 首先输入一个整数ncase xff
  • 总结java中关于继承中的成员属性和成员方法的多态细节

    问题背景 xff1a 下面的代码会输出什么 xff1f 40还是20 xff1f public class Animal public int age 61 40 public void eat System out println 34
  • 【java】浅谈instanceof关键字

    作用 xff1a 用于判断某个对象是否是某个特定类或该特定类的一个实例 返回一个布尔类型 一般格式 object instanceof class class可以是类也可以是接口 xff09 具体使用 xff1a 分编译阶段和运行阶段 xf
  • zzulioj 1185: 添加记录(结构体专题)

    题目描述 有一学生成绩表 xff0c 包括学号 姓名 3门课程成绩 已知该成绩表按学号升序排序 请编程实现 xff0c 添加一个新的学生信息 xff0c 且使成绩表仍按学号有序 xff1b 若待添加的学号与已有学号重复 xff0c 则输出错