华为OD机试真题双机位C卷 【采购订单】C语言实现

采购订单

2025华为OD机试双机位C卷 - 华为OD上机考试双机位C卷 100分题型

华为OD机试双机位C卷真题目录点击查看: 华为OD机试双机位C卷真题题库目录|机考题库 + 算法考点详解

题目描述

在一个采购系统中,采购申请(PR)需要经过审批后才能生成采购订单(PO)。每个PR包含商品的单价(假设相同商品的单价一定是一样的)及数量信息。系统要求对商品进行分类处理:单价高于100元的商品需要单独处理,单价低于或等于100元的相同商品可以合并到同一采购订单PO中。针对单价低于100的小额订单,如果量大可以打折购买。

具体规则如下:

如果PR状态为"审批通过",则将其商品加入到PO中。如果PR的状态为"审批拒绝"或"待审批",则忽略改PR。

对于单价高于100元的商品,每个商品单独生成一条PO记录。对于单价低于100元的商品,将相同商品的数量合并到一条PO记录中。

如果商品单价<100且商品数量>=100,则单价打9折。

输入描述

第一行包含整数N,表示PR的数量。

接下来N行,每行包含五个用空格分割的整数,按顺序表示:商品ID,数量,单价,PR状态(0表示审批通过,1表示审批拒绝,2表示待审批)

输出描述

输出若干行,每行表示一条PO记录,按以下格式输出:

对于单价高于100元的商品:商品ID 数量 单价

对于单价低于或等于100元的商品: 商品ID 总数量 打折后的单价(向上取整)

输出的PO记录按商品ID升序升序排列,相同商品按照数量降序排列

补充

  • 2 <= n <= 1000
  • 1 <= 商品价格 <= 200
  • 1 <= 商品数量 <= 1000
  • 2 <= 商品编号 <= 1000

用例1

输入

2 1 200 90 0 2 30 101 0

输出

1 200 81 2 30 101

说明

商品1的原始单价为90,审批通过,生成一条PO,满足打折条件,打折后单价为81。

商品2的单价为101,审批通过,生成一条PO

用例2

输入

3 1 10 90 0 1 5 90 0 2 8 120 0

输出

1 15 90 2 8 120

说明

PR1和PR2均为商品1,单价90,审批通过,单价低于100元,合并数量为150.

PR3为商品2,单价120元,审批通过,单价高于100元,单独生成一条PO记录。

用例3

输入

4 1 5 80 0 2 3 120 0 3 2 90 1 4 10 150 2

输出

1 5 80 2 3 120

说明

PR1:商品1,单价80元,审批通过,单价低于100元,合并到PO中。PR2:商品2,单价120元,审批通过,单价高于100元,单独生成一条PO记录。PR3:审批拒绝, 忽略。PR4待审批忽略。

题解

思路

使用模拟进行处理:

  1. 循环处理输入的PR,两种策略处理审批通过不同单价产品:
    • 单价> 100的PR: 直接生成一条最终PO记录。
    • 单价 <= 100的PR:可以使用一个中间数组累计对应商品总数目
  2. 处理1中暂存数组中每个单价低于100的商品,为它们生成PO,如果该商品累计总数目大于等于100,折扣之后价格为ceil(price * 0.9)向上取整,添加一条新的PO记录。
  3. 对于1 2 得到的最终PO记录,进行自定义排序.排序规则为商品ID升序升序排列,相同商品按照数量降序排列
  4. 按顺序和题目要求规则输出PO记录。

code

#include <stdio.h> #include <math.h> #include <stdlib.h> #define MAXN 1000 typedef struct { int id; int num; int price; int discountPrice; } Product; typedef struct { int id; int num; int price; } LowProduct; /* 排序规则:id 升序,num 降序 */ int cmp(const void *a, const void *b) { Product *x = (Product *)a; Product *y = (Product *)b; if (x->id != y->id) return x->id - y->id; return y->num - x->num; } int main() { int n; scanf("%d", &n); Product res[MAXN]; int resCnt = 0; LowProduct low[MAXN]; int lowCnt = 0; for (int i = 0; i < n; i++) { int id, num, price, status; scanf("%d %d %d %d", &id, &num, &price, &status); if (status != 0) continue; if (price > 100) { // 高价商品,直接入结果 res[resCnt].id = id; res[resCnt].num = num; res[resCnt].price = price; res[resCnt].discountPrice = price; resCnt++; } else { // 低价商品,按 id 合并 int found = 0; for (int j = 0; j < lowCnt; j++) { if (low[j].id == id) { low[j].num += num; found = 1; break; } } if (!found) { low[lowCnt].id = id; low[lowCnt].num = num; low[lowCnt].price = price; lowCnt++; } } } // 处理低价商品合并结果 for (int i = 0; i < lowCnt; i++) { res[resCnt].id = low[i].id; res[resCnt].num = low[i].num; res[resCnt].price = low[i].price; if (low[i].num >= 100) { res[resCnt].discountPrice = (int)ceil(low[i].price * 0.9); } else { res[resCnt].discountPrice = low[i].price; } resCnt++; } // 排序 qsort(res, resCnt, sizeof(Product), cmp); // 输出 for (int i = 0; i < resCnt; i++) { printf("%d %d %d\n", res[i].id, res[i].num, res[i].discountPrice); } return 0; }

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

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

相关文章

渗透测试该如何系统学习?一份从小白到实战的学习路径规划

渗透测试该如何系统学习&#xff1f;一份从小白到实战的学习路径规划 在网络安全持续升温的今天&#xff0c;越来越多的人开始关注“渗透测试”这一硬核技能。但渗透测试门槛不低&#xff0c;很多新手一上来就被术语、工具和庞杂的学习路径劝退。 那么&#xff0c;渗透测试到…

深度学习毕设项目:基于python的蔬菜识别基于CNN卷积网络的蔬菜识别

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

Agent全面爆发!一文搞懂Agent开发核心链路

过去一年&#xff0c;「智能体&#xff08;Agent&#xff09;」这个词的含义悄悄变了。 最早大家聊的是&#xff1a; 模型够不够聪明&#xff1f; 回答像不像人&#xff1f; 而现在&#xff0c;越来越多团队在问的是&#xff1a; 它能不能自己判断&#xff1f; 能不能自己…

2026必备!8个AI论文平台,助你轻松搞定本科毕业论文!

2026必备&#xff01;8个AI论文平台&#xff0c;助你轻松搞定本科毕业论文&#xff01; AI 工具的崛起&#xff0c;让论文写作不再难 在当前这个信息爆炸的时代&#xff0c;学术研究和论文写作已成为本科生必须面对的重要任务。无论是课程作业还是毕业论文&#xff0c;都对学生…

渗透测试和逆向工程,它们的区别是什么?当一名白帽黑客要学逆向吗?

渗透测试和逆向工程&#xff0c;它们的区别是什么&#xff1f;当一名白帽黑客要学逆向吗&#xff1f; 在网络安全领域&#xff0c;渗透测试与逆向工程常被并称为 “攻防两大核心技术”&#xff0c;但两者的技术路径、应用场景和核心目标存在显著差异。对于白帽黑客而言&#x…

微服务架构下的高可用保障:RuoYi-Cloud中Sentinel与Feign的完美融合

在微服务架构中,服务间的稳定通信是系统可用性的基石。本文将深度解析如何在RuoYi-Cloud框架中通过Sentinel与Feign的深度集成,实现优雅的服务调用与智能的熔断降级。 引言:微服务通信的挑战 随着企业应用规模不断扩大,传统的单体架构已无法满足业务快速迭代的需求。微服务…

智能体迈入 Agent RL 新架构时代?

序章&#xff1a;三大核心认知基石 在探索 Agent RL 技术浪潮之前&#xff0c;我们需先锚定三个根本性认知&#xff1a; 人类的本质&#xff1a;生物界中&#xff0c;人类凭借高等智慧脱颖而出&#xff0c;而制造与使用工具的能力&#xff0c;正是人与动物的核心分野。 大模型…

【课程设计/毕业设计】基于机器学习CNN卷积网络的蔬菜识别基于深度学习的蔬菜识别

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

深度学习毕设选题推荐:基于CNN深度学习的遥感图片识别沙漠湖泊和森林基于pythonCNN深度学习的遥感图片识别沙漠湖泊和森林

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

渗透测试技术,从入门到精通,小白也能成为白帽黑客,最新的学习路线和方法都在这。

渗透测试技术&#xff0c;从入门到精通&#xff0c;小白也能成为白帽黑客&#xff0c;最新的学习路线和方法都在这。 安全圈最热的渗透技术怎么学&#xff1f;从入门到精通最完整的学习方法&#xff0c;学完你就是白帽大佬。 首先你要知道渗透测试工程师的主要工作是什么&…

qsort-简单使用 · vs2022调试

把10个整形数据排序&#xff0c;你会怎么做&#xff1f;先来考虑升序情况最先想到用冒泡法做&#xff0c;ok,正好回忆一下oi~那还有更简洁的方法吗&#xff1f;有请 qsort 函数qsort 函数&#xff1a;void qsort(void*base,size-t num,size-t size, int (*compar)(const void*,…

一文彻底厘清:AI Agent、Agentic Workflow与Agentic AI

随着大模型的多次迭代、更多技术架构的提出以及多样化产品的出现&#xff0c;加上学术界对于Agentic AI与AI Agent的全新诠释&#xff0c;可能技术、产品等圈子已经对这几个概念有了更深的认知。但是各领域的相关从业者&#xff0c;对着几个概念仍旧很模糊。 现在AI Agent已经成…

深度学习计算机毕设之基于深度学习卷积网络的蔬菜识别基于CNN卷积网络的蔬菜识别

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

【毕业设计】基于CNN卷积网络的蔬菜识别基于python卷积网络的蔬菜识别

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

python基于django的基于微信小程序的校园资讯共享平台_ 校园表白墙系统c8463qc4

目录 项目概述技术架构核心功能创新点应用价值 关于博主开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01; 项目概述 该项目基于Django框架与微信小程序开发&#xff0c;旨在构建一个校园资讯…

计算机深度学习毕设实战-基于pythonCNN深度学习的遥感图片识别沙漠湖泊和森林基于CNN深度学习的遥感图片识别沙漠湖泊和森林

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

吐血推荐8个AI论文平台,继续教育学生轻松搞定毕业论文!

吐血推荐8个AI论文平台&#xff0c;继续教育学生轻松搞定毕业论文&#xff01; AI 工具如何助力论文写作&#xff0c;成为学生新宠 在继续教育领域&#xff0c;论文写作一直是许多学生的“硬骨头”。无论是本科、硕士还是博士阶段&#xff0c;论文的撰写不仅考验学术能力&#…

IE浏览器正式退役,为何你依然需要它?这份启用ie浏览器恢复指南请收好

先说方法&#xff1a;点击https://iebrowser-cn.com 可恢复ie浏览器。 2022年6月&#xff0c;微软正式终止了对IE浏览器的支持&#xff0c;其下载渠道也相继关闭。一个时代似乎就此落幕。 然而&#xff0c;现实场景往往比官宣更复杂。许多企业内部的OA系统、财务软件、教育报…

深度学习毕设选题推荐:人工智能基于深度学习的蔬菜识别基于CNN卷积网络的蔬菜识别

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

深度学习计算机毕设之基于CNN深度学习的遥感图片识别沙漠湖泊和森林基于python的遥感图片识别沙漠湖泊和森林

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…