10. 考勤信息

题目描述

公司用一个字符串来表示员工的出勤信息

  • absent:缺勤
  • late: 迟到
  • leaveearly: 早退
  • present: 正常上班

现需根据员工出勤信息,判断本次是否能获得出勤奖,能获得出勤奖的条件如下:

  • 缺勤不超过一次,
  • 没有连续的迟到/早退:
  • 任意连续7次考勤,缺勤/迟到/早退不超过3次

输入描述

第一行输入一个整数n,表示有多少个员工

后面n行,每一行输入若干个字符串,表示第i名员工的出勤信息

输出描述

输出n行,每一行表示这名员工能否获得出勤奖,如果可以,则输出“true",否则输出”false"

示例1

输入:
2
present
present present输出:
true true

示例2

输入:
2
present
present absent present present leaveearly present absent输出:
true false


作者:code5bug
链接:考勤信息 - 华为OD统一考试(C卷)_牛客网
来源:牛客网
一、问题分析

首先读题,仔细看描述中的内容,发现需求是

1.对n个员工的出勤情况做一个评估,是否可以获得出勤奖励

2.absent表示缺勤,late表示迟到,leaveearly表示早退,present表示正常上班

3.如果想要获得出勤奖励需要满足:

(1)缺勤不超过一次

(2)没有连续的迟到/早退

(3)任意连续7次考勤,缺勤/迟到/早退不超过3次

4.输入描述:输入一个正整数n表示员工数量,后面n行表示第i名员工的出勤信息

5.输出描述:输出n行每行表述员工是否能获得出勤奖,如果可以输出true不可以输出false

二、解题思路

1.首先定义一个整数变量int n;用来存储员工数量

2.然后对于每一名员工,我们接收他的出勤信息并存储到一个字符串char info[1000];中

fgets(info, sizeof(info), stdin);

info[strcspn(info, '\n')] = '\0';

3.我们对出勤信息进行一个统计,首先定义一个变量统计缺勤次数int absent = 0;

4.还需要定义一个变量表示连续迟到或者早退int lateleavearly = 0;(每次遇到late和leaveearly的时候增加1,如果变成2我们认为不能获得出勤奖)

5.还需要一个记录连续7次缺勤/迟到/早退的次数不超过三次的方法,我们可以用一个数组表示

int idx = 0;

bool week[7] = {false};首先我们初始化为0,表示没有缺勤

6.然后在处理出勤信息的时候,做一个判断

if(idx == 6) idx = 0;

如果已经到了第七天我们将索引变回第一天

三、具体步骤

使用的语言是C

#include <stdio.h>
#include <string.h>
#include <stdbool.h>
int main()
{int n;scanf("%d", &n);for(int i = 0; i < n; i++) {char info[1000];fgets(info, sizeof(info), stdin);info[strcspn(info, "\n")] = '\0';bool absent = false;bool attandance = true;bool lateleaveearly = false;bool week[7] = {false};int idx = 0;int threetime = 0;char* temp = strtok(info, " ");while(temp != NULL) {if(strcmp(temp,"absent") == 0) {if(absent == true) {attandance = false;} else {absent = true;lateleaveearly = false;}} else if(strcmp(temp, "late") == 0 || strcmp(temp,"leaveearly") == 0) {if(lateleaveearly == true) attandance = false;else lateleaveearly = true;} else if(strcmp(temp, "present") == 0) {lateleaveearly = false;}if(attandance == false) break;else {if(week[idx] == 1) threetime--;if(strcmp(temp,"absent") == 0 || strcmp(temp,"late") == 0 || strcmp(temp,"leaveearly") == 0) {week[idx++] = 1;threetime++;if(threetime >= 3) attandance = false;} else { // 其他情况应该只有出席week[idx++] = 0;}if(idx == 7) idx = 0;}if(attandance == false) break;temp = strtok(NULL, " ");}if(attandance == false) printf("false\n");else printf("true\n");}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/63604.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【计算机网络】期末考试预习复习|中

作业讲解 转发器、网桥、路由器和网关(4-6) 作为中间设备&#xff0c;转发器、网桥、路由器和网关有何区别&#xff1f; (1) 物理层使用的中间设备叫做转发器(repeater)。 (2) 数据链路层使用的中间设备叫做网桥或桥接器(bridge)。 (3) 网络层使用的中间设备叫做路…

前端工程化-Vue脚手架安装

在现代前端开发中&#xff0c;Vue.js已成为一个流行的框架&#xff0c;而Vue CLI&#xff08;脚手架&#xff09;则为开发者提供了一个方便的工具&#xff0c;用于快速创建和管理Vue项目。本文将详细介绍如何安装Vue脚手架&#xff0c;创建新项目以及常见问题的解决方法。 什么…

利用爬虫获取的数据能否用于商业分析?

在数字化时代&#xff0c;数据已成为企业获取竞争优势的关键资源。网络爬虫作为一种数据收集工具&#xff0c;能够从互联网上抓取大量数据&#xff0c;这些数据在商业分析中扮演着重要角色。然而&#xff0c;使用爬虫技术获取的数据是否合法、能否用于商业分析&#xff0c;是许…

罗德与施瓦茨ZN-Z129E网络分析仪校准套件具体参数

罗德与施瓦茨ZN-Z129E网络校准件ZN-Z129E网络分析仪校准套件 1&#xff0c;频率范围从9kHz到4GHz&#xff08;ZNB4&#xff09;,8.5GHz(ZNB8)&#xff0c;20GHz(ZNB20)&#xff0c;40GHz(ZNB40) 2&#xff0c;动态范围宽&#xff0c;高达140 dB 3&#xff0c;扫描时间短达4ms…

如何为IntelliJ IDEA配置JVM参数

在使用IntelliJ IDEA进行Java开发时&#xff0c;合理配置JVM参数对于优化项目性能和资源管理至关重要。IntelliJ IDEA提供了两种方便的方式来设置JVM参数&#xff0c;以确保你的应用程序能够在最佳状态下运行。本文将详细介绍这两种方法&#xff1a;通过工具栏编辑配置和通过服…

unity is running as administrator 管理员权限问题

每次打开工程弹出unity is running as administrator的窗口 unity版本2022.3.34f1&#xff0c;电脑系统是win 11系统解决方法一&#xff1a;解决方法二&#xff1a; unity版本2022.3.34f1&#xff0c;电脑系统是win 11系统 每次打开工程都会出现unity is running as administr…

回归预测 | MATLAB实现CNN-BiGRU-Attention卷积神经网络结合双向门控循环单元融合注意力机制多输入单输出回归预测

回归预测 | MATLAB实现CNN-BiGRU-Attention卷积神经网络结合双向门控循环单元融合注意力机制多输入单输出回归预测 目录 回归预测 | MATLAB实现CNN-BiGRU-Attention卷积神经网络结合双向门控循环单元融合注意力机制多输入单输出回归预测预测效果基本介绍程序设计参考资料 预测效…

OneCode:开启高效编程新时代——企业定制出码手册

一、概述 OneCode 的 DSM&#xff08;领域特定建模&#xff09;出码模块是一个强大的工具&#xff0c;它支持多种建模方式&#xff0c;并具有强大的模型转换与集成能力&#xff0c;能够提升开发效率和代码质量&#xff0c;同时方便团队协作与知识传承&#xff0c;还具备方便的仿…

git暂存

给大家分享几个git命令&#xff1a; git stash 暂存工作目录的修改 git stash list 查看暂存列表 git stash apply 恢复暂存内容并保持最近一次暂存记录&#xff0c;如果有多个暂存记录&#xff0c;想恢复指定的暂存记录&#xff0c;可以使用git stash apply stash{}&#xf…

远程控制软件新趋势

随着数字化浪潮的推进&#xff0c;远程控制软件已经成为我们生活中的一部分&#xff0c;它们不仅改变了我们的工作方式&#xff0c;还为日常生活带来了极大的便利。现在&#xff0c;让我们来探讨远程控制软件在数字时代的发展和应用&#xff0c;以及它们如何引领新的办公趋势。…

C++如何处理对象的状态变化?

概念 处理对象的状态变化是软件开发中一个重要的课题&#xff0c;尤其是在设计过程中&#xff0c;如何有效管理对象的状态变化对于软件的可维护性、可扩展性和整体设计都至关重要。 状态模式 状态模式通过将状态封装为对象&#xff0c;允许对象在内部状态改变时改变其行为。…

在Spring中application 的配置属性(详细)

application 的配置属性。 这些属性是否生效取决于对应的组件是否声明为 Spring 应用程序上下文里的 Bean &#xff08;基本是自动配置 的&#xff09;&#xff0c;为一个不生效的组件设置属性是没有用的。 multipart multipart.enabled 开启上传支持&#xff08;默认&a…

C语言编程1.27汉诺塔

题目描述 给定一个由n个圆盘组成的塔&#xff0c;这些圆盘按照大小递减的方式套在第一根桩柱上。现要将整个塔移动到另一根桩柱上&#xff0c;每次只能移动一个圆盘&#xff0c;且较大的圆盘在移动过程中不能放置在较小的圆盘上面。 输入格式 输入由四行&#xff1a; 第一行…

初学stm32 --- 时钟配置

目录 stm32时钟系统 时钟源 &#xff08;1&#xff09; 2 个外部时钟源&#xff1a; &#xff08;2&#xff09;2 个内部时钟源&#xff1a; 锁相环 PLL PLLXTPRE&#xff1a; HSE 分频器作为 PLL 输入 (HSE divider for PLL entry) PLLSRC&#xff1a; PLL 输入时钟源 (PL…

【Java基础面试题025】什么是Java的Integer缓存池?

回答重点 Java的Integer缓存池&#xff08;Integer Cache&#xff09;是为了提升性能和节省内存。根据实践发现大部分的数据操作都集中在值比较小的范围&#xff0c;因此缓存这些对象可以减少内存分配和垃圾回收的负担&#xff0c;提升性能 在 -128到127范围内的Integer对象会…

Nginx IP优化限制策略

Nginx 如何限制每个 IP 地址的连接数&#xff0c;优化资源分配&#xff1f; Nginx 限制每个 IP 地址的连接数 Nginx 提供了多种机制来限制单个 IP 地址所能建立的同时连接数&#xff0c;这对于防止资源耗尽和提高服务稳定性至关重要。以下是几种有效策略&#xff1a; 1. 使用…

[spring]XML配置文件标签

spring的XML配置文件的标签大体可以分为两种&#xff1a; 其中的默认标签&#xff0c;我们前面文章里面出现的标签都是默认标签&#xff0c;是spring本身自带的&#xff0c;不需要我们去引入其他东西。而自定义标签则是指非默认标签的其他的由我们或产品发行方自定义的对接spir…

简单的bytebuddy学习笔记

简单的bytebuddy学习笔记 此笔记对应b站bytebuddy学习视频进行整理&#xff0c;此为视频地址&#xff0c;此处为具体的练习代码地址 一、简介 ByteBuddy是基于ASM (ow2.io)实现的字节码操作类库。比起ASM&#xff0c;ByteBuddy的API更加简单易用。开发者无需了解class file …

【信息系统项目管理师】高分论文:论信息系统项目的进度管理(人力资源管理系统)

更多内容请见: 备考信息系统项目管理师-专栏介绍和目录 文章目录 论文1、规划进度管理3、排列活动顺序4、估算活动持续时间5、制订进度计划6、控制进度论文 2022年2月,我作为项目经理参与了XX电网公司人力资源管理系统建设项目,该项目是2022年XX电网公司“十三五”信息化规…

vue3项目结合Echarts实现甘特图(可拖拽、选中等操作)

效果图&#xff1a; 图一&#xff1a;选中操作 图二&#xff1a;上下左右拖拽操作 本案例在echarts​​​​​​​示例机场航班甘特图的基础上修改​​​​​​​ 封装ganttEcharts组件&#xff0c;测试数据 airport-schedule.jsonganttEcharts代码: 直接复制粘贴可测​​​​…