当前位置: 首页 > news >正文

C语言算法赛——蓝桥杯(省赛试题)

一、十四届C/C++程序设计C组试题


十四届程序C组试题A

#include <stdio.h>
int main() 
{
    long long sum = 0;
    int n = 20230408;
    int i = 0;

    // 累加从1到n的所有整数
    for (i = 1; i <= n; i++)
    {
        sum += i;
    }

    // 输出结果
    printf("%lld\n", sum);

    return 0;
}


//十四届程序C组试题B
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include<time.h>

// 时间字符串解析为结构体 tm
void parseTime(char* timeString, struct tm* timeStruct) {
    sscanf(timeString, "%d-%d-%d %d:%d:%d",
        &timeStruct->tm_year, &timeStruct->tm_mon, &timeStruct->tm_mday,
        &timeStruct->tm_hour, &timeStruct->tm_min, &timeStruct->tm_sec);

    // tm_year表示的是自1900年以来的年数,需要减去1900
    timeStruct->tm_year -= 1900;
    // tm_mon表示的是0-11的月份,需要减去1
    timeStruct->tm_mon -= 1;
}

// 每一对相邻的上下班打卡之间的时间差
int calculateTimeDifference(char* time1, char* time2) {
    struct tm start, end;

    // 解析时间字符串为结构体 tm
    parseTime(time1, &start);
    parseTime(time2, &end);

    // 使用 mktime 将 tm 结构体转换为时间戳
    time_t startTime = mktime(&start);
    time_t endTime = mktime(&end);

    // 计算时间差
    return difftime(endTime, startTime);
}

int main() {
    // 打卡记录数组
    char* punchRecords[] = {
        "2022-01-01 07:58:02",
        "2022-01-01 12:00:05",
        "2022-01-01 16:01:35",
        "2022-01-02 00:20:05"
    };

    int numRecords = sizeof(punchRecords) / sizeof(punchRecords[0]);

    // 按照时间顺序对打卡记录进行排序
    for (int i = 0; i < numRecords - 1; i++) {
        for (int j = 0; j < numRecords - i - 1; j++) {
            if (strcmp(punchRecords[j], punchRecords[j + 1]) > 0) {
                // 交换记录
                char* temp = punchRecords[j];
                punchRecords[j] = punchRecords[j + 1];
                punchRecords[j + 1] = temp;
            }
        }
    }

    // 计算总工作时长
    int totalWorkDuration = 0;
    for (int i = 0; i < numRecords - 1; i += 2) {
        totalWorkDuration += calculateTimeDifference(punchRecords[i], punchRecords[i + 1]);
    }

    // 输出总工作时长
    printf("小蓝在2022年度的总工作时长是%d秒。\n", totalWorkDuration);

    return 0;
}


十四届程序C组试题C

#include <stdio.h>
int main() {
    int n; // 事件数量
    scanf("%d", &n);

    int A[n], B[n], C[n]; // 存储每个事件中的A、B、C值
    int maxEvents = -1; // 最多发生的事件数量
    int X = 0, Y = 0, Z = 0; // 初始士兵数量

    for (int i = 0; i < n; ++i) {
        scanf("%d %d %d", &A[i], &B[i], &C[i]);

        // 计算每个国家的士兵数量
        X += A[i];
        Y += B[i];
        Z += C[i];

        // 判断是否有国家获胜
        if ((X > Y + Z) || (Y > X + Z) || (Z > X + Y)) {
            // 更新最多发生的事件数量
            maxEvents = i + 1;
        }
    }

    printf("%d\n", maxEvents);

    return 0;
}

相关文章:

  • 基于SpringBoot Vue高校失物招领系统
  • Docker consul
  • Flink(十四)【Flink SQL(中)查询】
  • How to disagree with ideas
  • 【Nginx】使用自生成证书配置nginx代理https
  • Nginx快速入门
  • mariadb数据库从入门到精通
  • 数据库常用系统表及常用功能
  • 大模型学习与实践笔记(七)
  • SQL慢语句执行的很慢,如何分析优化呢,(如何优化的呢?)
  • H5小游戏如何提升APP变现收益?
  • SQL执行时间过长如何优化
  • 阿里云国外服务器多少钱一个月?24元/月
  • VRPSolverEasy:支持VRP问题快速建模的精确算法Python包
  • 架构篇05-复杂度来源:高可用
  • go语言(一)----声明变量
  • 【JavaEE】网络原理:网络中的一些基本概念
  • 制作一个Python聊天机器人
  • Git一台电脑 配置多个账号
  • PXE高效批量网络装机
  • 兰州大学教授安成邦加盟复旦大学中国历史地理研究所
  • 网信部门曝光网络谣言典型案例,“AI预测彩票号码百分百中奖”等在列
  • 马上评丨摆摊要交芙蓉王?对吃拿卡要必须零容忍
  • 美国政府信用卡被设1美元限额,10美元采购花一两小时填表
  • 全国层面首次!《防震减灾基本知识与技能大纲》发布
  • A股三大股指集体高开