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.pswp.cn/web/63604.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/63604.shtml
英文地址,請注明出處:http://en.pswp.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代碼: 直接復制粘貼可測????…