当前位置: 首页> 游戏> 网游 > 网站互动_网站设置路由器_百度竞价官网_搜索引擎提交入口网址

网站互动_网站设置路由器_百度竞价官网_搜索引擎提交入口网址

时间:2025/8/6 22:25:19来源:https://blog.csdn.net/bingw0114/article/details/143666909 浏览次数:0次
网站互动_网站设置路由器_百度竞价官网_搜索引擎提交入口网址

题目描述

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

  • 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;
}
关键字:网站互动_网站设置路由器_百度竞价官网_搜索引擎提交入口网址

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: