你哪来这么多事(六):职工信息查找
职工信息查找
Time Limit: 1 Sec Memory Limit: 128 MB 64bit IO Format: %lld
Description
某单位有n个职工(不超过100),每个职工的信息包括工号(long no),姓名(char name[9])和出生年月日(int year,birth,day)。
编写程序,先将n个职工的信息录入到结构体数组中(n个职工的数据已按出生年月日升序有序,即出生早的在前),
然后需要查询在指定日期之后出生的人,如果存在的话,输出所有满足条件的职工信息,否则输出不存在。
注意:main函数已经给定(如下所示)。
请将程序补充完整。
提交时只需要提交自己补充的代码部分,不需要提交给定的main函数的代码部分。
#include<stdio.h>
int main()
{int i,n,y,m,d,t;struct employee emp[100];while(scanf("%d",&n)!=EOF){input(emp,n); //读入n个职工的数据scanf("%d%d%d",&y,&m,&d);//查找在y年m月d日之后出生的职工信息//如果存在则返回第一个满足条件的职工所在下标,否则返回-1t=search(emp,n,y,m,d);if(t==-1) printf("Not exist\n");else print(emp,n,t); //输出t开始到最后一个职工的信息}return 0;
}
Input
包含多组测试数据,每组测试数据第一行包含1个正整数n,表示职工人数。
接下来的n行,每行为1个职工的详细信息(已按出生日期升序有序),包括工号,姓名和出生年月日,各数据之间用空格隔开。
接下来的一行包括3个正整数y,m和d,表示需要查找在y年m月d日以后出生的人。
Output
每组测试数据输出占若干行,如果不存在y年m月d日以后出生的人,则输出“Not exist”,如果存在,则输出满足条件的所有职工的信息,数据依次为:工号,姓名和出生日期。各部分数据之间用空格隔开。(具体详见样例输出)
Sample Input
5 1001 aaa 1962 5 9 1004 ddd 1970 3 21 1002 bbb 1978 10 28 1005 eee 1978 10 29 1003 ccc 1989 6 7 1978 10 28
Sample Output
1005 eee 1978-10-29 1003 ccc 1989-6-7
题目分析:
告辞
#include<stdio.h>
struct employee
{long no;char name[9];int birth[4];
};
void input(struct employee emp[100],int n)
{int i;for(i=1;i<=n;i++){scanf("%ld %s %d %d %d",&emp[i].no,emp[i].name,&emp[i].birth[1],&emp
[i].birth[2],&emp[i].birth[3]);}return;
}
void sort(struct employee emp[100],int n)
{int i,j;struct employee t;for(i=1;i<n;i++)for(j=i+1;j<=n;j++){if(emp[i].birth[1]>emp[j].birth[1] || emp[i].birth[1]==emp
[j].birth[1] && emp[i].birth[2]>emp[j].birth[2] || emp[i].birth[1]==emp[j].birth[1] &&
emp[i].birth[2]==emp[j].birth[2] && emp[i].birth[3]>emp[j].birth[3]){t=emp[i];emp[i]=emp[j];emp[j]=t;}}return;
}
void insert(struct employee emp[100],int n)
{int i,j,k,f=0;struct employee t;scanf("%ld %s %d %d %d",&t.no,t.name,&t.birth[1],&t.birth[2],&t.birth[3]);for(i=1;i<=n;i++){if(emp[i].birth[1]>t.birth[1] || emp[i].birth[1]==t.birth[1] && emp
[i].birth[2]>t.birth[2] || emp[i].birth[1]==t.birth[1] && emp[i].birth[2]==t.birth[2] &&
emp[i].birth[3]>t.birth[3]){f=1;for(j=n;j>=i;j--){emp[j+1]=emp[j];}emp[i]=t;return;}}if(f==0)emp[n+1]=t;return;
}
int search(struct employee emp[100],int n,int y,int m,int d)
{int i,j;for(i=1;i<=n;i++){if(emp[i].birth[1]>y || emp[i].birth[1]==y && emp[i].birth[2]>m || emp
[i].birth[1]==y && emp[i].birth[2]==m && emp[i].birth[3]>d){return i;}}return -1;
}
void print(struct employee emp[100],int n,int t)
{int i;for(i=t;i<=n;i++){printf("%ld %s %d-%d-%d\n",emp[i].no,emp[i].name,emp[i].birth[1],emp[i].birth[2],emp[i].birth[3]);}return;
}
int main()
{int i,n,y,m,d,t;struct employee emp[100];while(scanf("%d",&n)!=EOF){input(emp,n); //读入n个职工的数据scanf("%d%d%d",&y,&m,&d);//查找在y年m月d日之后出生的职工信息//如果存在则返回第一个满足条件的职工所在下标,否则返回-1t=search(emp,n,y,m,d);if(t==-1) printf("Not exist\n");else print(emp,n,t); //输出t开始到最后一个职工的信息}return 0;
}
你哪来这么多事(六):职工信息查找相关推荐
- 你哪来这么多事(五):职工信息插入
职工信息插入 Time Limit: 1 Sec Memory Limit: 128 MB 64bit IO Format: %lld Description 某单位有n个职工(不超过100), ...
- 你哪来这么多事(四):职工信息排序
职工信息排序 Time Limit: 1 Sec Memory Limit: 128 MB 64bit IO Format: %lld Description 某单位有n个职工(不超过100), ...
- 数据结构课程设计报告-职工信息管理系统
"数据结构"课程设计报告 系 (院): 信息工程学院 设计题目: 员工管理系统 专业班级: 计算机科学与技术1401B 小 ...
- C语言 课程设计——职工信息管理系统
C语言 课程设计--职工信息管理系统 提示:该课程设计是本人第一次制作,有诸多不足之处,希望王对你有些许帮助!!! 文章目录 C语言 课程设计--职工信息管理系统 前言 一.首先定义一个结构体数组 二 ...
- 员工信息管理系统语言论文c,C语言课程设计 职工信息管理系统.doc
C语言课程设计 职工信息管理系统.doc 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址水印. ...
- 【c语言】职工信息管理系统 包含读取写入txt文件,职工信息的增删改查
一.需求分析 1.职工信息管理系统的目标是为方便管理层对职工的信息管理,要如何设计一个操作简便且又能很好的管理职工信息的系统就要涉及到各种逻辑问题. 2.管理系统将可以对职工信息进行操作,对职工信息进 ...
- 员工信息管理系统java6_职工信息管理系统java源代码【可修改】.doc
package exercise; import java.io.*; class staffInfo //职工类 { public String name; public String num; p ...
- 职工信息管理程序设计c语言,C语言程序设计职工信息管理系统.docx
C语言程序设计职工信息管理系统.docx 1 数信学院数信学院 课程设计报告课程设计报告 课程名称课程名称C C 语言程序设计语言程序设计_ _ 题目名称题目名称职工信息管理系统职工信息管理系统 学生 ...
- C++(九)——职工信息管理系统
简单的项目构成 头文件 职工抽象类 #pragma once #include<iostream> #include<string> using namespace std; ...
最新文章
- [Win7]如何还原[.bat]文件关联
- mysql myisam innodb 区别
- 阿里云云服务器安装jdk、mysql
- 第k大的数 java_一道算法题:第K大的数
- 为什么硬盘明明还有空间,linux却说硬盘空间不足?inode;mkdir: 无法创建目录shen1: 设备上没有空间...
- 【图说word】 宏
- zend_soap做webservice的使用方法
- AI即开即用,这是悄然推出的“腾讯最新AI技术”小程序
- 【浙江大学PAT真题练习乙级】1001 害死人不偿命的(3n+1)猜想(15分)真题解析
- flashlite3无法接入网络的解决办法
- 【C/C++】sizeof(结构体)的计算
- 190804每日一句
- 若依框架数据库密码加密
- CUDA编程入门极简教程
- 计算机电缆国家标准是什么,计算机电缆执行标准是什么
- 快速理解三角函数:积化和差、和差化积
- DataNucleus之JDO操作示例
- 雅思等出国留学成绩要求一知半解?戳这里
- Data too long for column ‘data‘ at row 1以及设置成longblob造成的乱码解决。node-mysql
- 平面设计师经常去的网站——设计灵感类
热门文章
- 什么是LinkedList?什么时候使用它呢?Java LinkedList结构、用法及源码解析
- 2022-2028年中国橡胶板的制造行业发展战略规划及投资方向研究报告
- 这样的独处,能让你变得越来越优秀
- ionic4中使用Swiper触屏滑动---心酸路
- 如何在小型pcb的移动设备上获得更好的无线性能
- Mybatis获取参数值的方式
- 客快物流大数据项目(五十六): 编写SparkSession对象工具类
- 2021年大数据Spark(四十五):Structured Streaming Sources 输入源
- MySQL数据库+命令大全+常用操作
- float js 正则 验证_使用HTML和Vuejs进行表单验证