百马百担c语言编程

以下是一个百马百担问题的C语言编程实现:
- #include <stdio.h>
- int main() {
- int n, m, k;
- scanf("%d%d%d", &n, &m, &k);
- int a[n], b[m], c[k];
- for (int i = 0; i < n; i++) {
- scanf("%d", &a[i]);
- }
- for (int i = 0; i < m; i++) {
- scanf("%d", &b[i]);
- }
- for (int i = 0; i < k; i++) {
- scanf("%d", &c[i]);
- }
- int sum_a = 0, sum_b = 0, sum_c = 0;
- for (int i = 0; i < n; i++) {
- sum_a += a[i];
- }
- for (int i = 0; i < m; i++) {
- sum_b += b[i];
- }
- for (int i = 0; i < k; i++) {
- sum_c += c[i];
- }
- if (sum_a == sum_b && sum_b == sum_c) {
- printf("YES\n");
- } else {
- printf("NO\n");
- }
- return 0;
- }
这个程序首先读取三个整数n、m、k,分别表示马的数量、担的数量和人的数量。然后分别读取n个马的数量、m个担的重量、k个人的人数,存储在数组a、b、c中。接着计算马的总重量sum_a、担的总重量sum_b、人的总重量sum_c,如果三者相等则输出"YES",否则输出"NO"。
当然,这个程序可以根据需要进行一些改进。以下是一个可能的改进版本,它可以处理更一般的情况,并且输出更详细的信息:
- #include <stdio.h>
- int main() {
- int n, m, k;
- scanf("%d%d%d", &n, &m, &k);
- int a[n], b[m], c[k];
- for (int i = 0; i < n; i++) {
- scanf("%d", &a[i]);
- }
- for (int i = 0; i < m; i++) {
- scanf("%d", &b[i]);
- }
- for (int i = 0; i < k; i++) {
- scanf("%d", &c[i]);
- }
- int sum_a = 0, sum_b = 0, sum_c = 0;
- for (int i = 0; i < n; i++) {
- sum_a += a[i];
- }
- for (int i = 0; i < m; i++) {
- sum_b += b[i];
- }
- for (int i = 0; i < k; i++) {
- sum_c += c[i];
- }
- if (sum_a == sum_b && sum_b == sum_c) {
- printf("YES, all weights are equal.\n");
- } else {
- printf("NO, weights are not equal.\n");
- if (sum_a != sum_b) {
- printf("The total weight of horses is %d, but the total weight of donkeys is %d.\n", sum_a, sum_b);
- }
- if (sum_b != sum_c) {
- printf("The total weight of donkeys is %d, but the total weight of people is %d.\n", sum_b, sum_c);
- }
- }
- return 0;
- }
这个版本的程序在比较重量之前先分别计算了马、担和人各自的重量总和,这样如果重量不等,程序可以输出哪个总和与其它总和不相等,以便用户更好地理解问题。
好的,以下是对上述程序的进一步改进,增加了对输入数据的验证和错误处理:
- #include <stdio.h>
- int main() {
- int n, m, k;
- scanf("%d%d%d", &n, &m, &k);
- // 检查输入数据的有效性
- if (n <= 0 || m <= 0 || k <= 0) {
- printf("Invalid input: all counts must be positive.\n");
- return 0;
- }
- int a[n], b[m], c[k];
- for (int i = 0; i < n; i++) {
- scanf("%d", &a[i]);
- }
- for (int i = 0; i < m; i++) {
- scanf("%d", &b[i]);
- }
- for (int i = 0; i < k; i++) {
- scanf("%d", &c[i]);
- }
- // 检查输入数据的总和是否为整数,并且不超过整数的最大值
- long long sum_a = 0, sum_b = 0, sum_c = 0;
- for (int i = 0; i < n; i++) {
- sum_a += a[i];
- }
- for (int i = 0; i < m; i++) {
- sum_b += b[i];
- }
- for (int i = 0; i < k; i++) {
- sum_c += c[i];
- }
- if (sum_a != sum_b || sum_b != sum_c) {
- printf("The total weights are not equal.\n");
- if (sum_a != sum_b) {
- printf("The total weight of horses is %lld, but the total weight of donkeys is %lld.\n", sum_a, sum_b);
- }
- if (sum_b != sum_c) {
- printf("The total weight of donkeys is %lld, but the total weight of people is %lld.\n", sum_b, sum_c);
- }
- } else {
- printf("YES, all weights are equal.\n");
- }
- return 0;
- }
这个版本的程序增加了对输入数据的验证,包括检查输入数据的有效性和总和是否为整数,并且不超过整数的最大值。如果输入数据无效或总和不是整数,程序将输出错误信息。如果总和不等,程序将输出哪个总和与其它总和不相等,以便用户更好地理解问题。
相关文章:
百马百担c语言编程
以下是一个百马百担问题的C语言编程实现: #include <stdio.h>int main() { int n, m, k; scanf("%d%d%d", &n, &m, &k); int a[n], b[m], c[k]; for (int i 0; i < n; i) { scanf("%d", &a[i]);…...
C++检测字符串中有效的括号个数
匹配一个字符串buf中,连续包换运算符reg的次数: #include <iostream>//return 返回匹配的字符个数 //buf, 要检测的字符串 //reg, 包含的连续运算符 int GetMatchCount(std::string& buf, std::string& reg) {int nMatchCount 0;if (reg.…...
前端依赖下载速度过慢解决方法,nrm 镜像管理工具
npm 默认镜像 :https://registry.npmjs.org/ 问题 使用 npm install 安装依赖的时候,受网络的限制,速度会很慢。 解决 使用国内镜像代理。 nrm nrm 是镜像源管理工具; 1. 安装 nrm npm install nrm --global# 查看镜像源列…...
如何为 3D 模型制作纹理的最佳方法
在线工具推荐: 3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎 您可以通过不同的方式为 3D 模型创建 3D 纹理。下面我们将介绍为 3D …...
智慧校园:TSINGSEE青犀智能视频监控系统,AI助力优化校园管理
随着科技的飞速发展和信息化社会的到来,智慧校园已经成为教育领域的一种新型发展模式。智慧校园的需求和发展趋势日益显现,其建设已成为当今教育信息化发展的重要方向。 TSINGSEE青犀结合高可靠、高性能的云计算、人工智能、大数据、物联网等技术&#…...
Three的lod技术
1、资源:https://sbcode.net/threejs/lod/ import * as THREE from three import { OrbitControls } from three/examples/jsm/controls/OrbitControls import Stats from three/examples/jsm/libs/stats.module import { GUI } from dat.gui import { GLTFLoader }…...
Git配置
个人主页:Lei宝啊 愿所有美好如期而遇 前言 前面我们新建了远程仓库并且在Linux上克隆了远程仓库,但是在新建仓库时我们提到会配置gitignore文件,这次我们将会配置他,并给命令起别名。 目录 前言 忽略特殊文件 给命令起别名…...
阻抗控制下机器人接触刚性环境振荡不稳定进行阻抗调节
阻抗接触 刚性环境为ke10000 虚拟阻抗为:kd100,bd10,md1 虚拟阻抗为:kd100,bd10,md5 虚拟阻抗为:kd100,bd10,md10 性能滤波函数的Bode图: bode(1e5/(0.000…...
【鸿蒙应用ArkTS开发系列】-自定义底部菜单列表弹窗
文章目录 前言创建Demo工程创建dialog 文件夹创建ListMenu 接口创建自定义弹窗 ListMenuDialog使用自定义弹窗 打包测试效果演示默认效果菜单带图标效果设置文本颜色效果不同文本颜色效果无标题效果 前言 上一篇文章中我们实现了选择图片、选择文件、拍照的功能 。 链接在这里…...
yolov8添加ca注意力机制
创建文件 coordAtt.py 位置:ultralytics/nn/modules/coordAtt.py ###################### CoordAtt #### start by AI&CV ############################### # https://zhuanlan.zhihu.com/p/655475515 import torch import torch.nn as nn import t…...
linux java后台启动的几种方式
1.使用 nohup 命令 可以使用 nohup 命令启动 Java 应用程序,使其在后台运行,这样即使退出终端或关闭 SSH 连接,Java 应用程序也能继续运行。nohup java -jar myapp.jar &2.使用 & 符号 使用 & 符号可以将 Java 应用程序放到后台…...
selinux-policy-default(2:2.20231119-2)软件包内容详细介绍(5)
接前一篇文章:selinux-policy-default(2:2.20231119-2)软件包内容详细介绍(4) 4. 重点文件内容解析 (1)control/postist文件 上一回解析了control/postinst文件的部分内容,本回继续往下解析。为了便于理解,再次贴出postinst完整代码: #!/bin/sh set -e# summary o…...
代码随想录二刷 |栈与队列 |理论基础
代码随想录二刷 |栈与队列 |理论基础 栈常用操作 队列常用操作 栈与队列是C标准库中的两个数据结构。 栈 栈先进后出,提供 push 和 pop 等接口,所有元素必须符合先进后出的原则,所以栈不提供走访功能,也不…...
java--接口概述
1.认识接口 ①java提供了一个关键字interface,用这个关键字我们可以定义出一个特殊的结构:接口。 ②注意:接口不能创建对象;接口是用来被类实现(implements)的,实现接口的类称为实现类。 ③一个类可以实现多个接口(接…...
出海风潮:中国母婴品牌征服国际市场的机遇与挑战!
近年来,中国母婴品牌在国内市场蓬勃发展的同时,也逐渐将目光投向国际市场。这一趋势不仅受益于中国经济的崛起,还得益于全球市场对高质量母婴产品的不断需求。然而,面对国际市场的机遇,中国母婴品牌同样面临着一系列挑…...
一文读懂MongoDB的知识点(3),惊呆面试官。
🏆作者简介,普修罗双战士,一直追求不断学习和成长,在技术的道路上持续探索和实践。 🏆多年互联网行业从业经验,历任核心研发工程师,项目技术负责人。 🎉欢迎 👍点赞✍评论…...
ssm的“魅力”西安宣传网站(有报告)。Javaee项目。
演示视频: ssm的“魅力”西安宣传网站(有报告)。Javaee项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构,通过Spring SpringMvc MybatisVueLayuiElemen…...
怎么让SecureCRT不自动断开连接
SecureCRT 是一个常用的远程连接工具,它可能会因为会话超时或者其他设置而自动断开连接。要防止 SecureCRT 自动断开连接,你可以尝试以下方法: 1. 更改会话选项: 打开 SecureCRT 并连接到你的远程主机后,依次执行以下…...
介绍几种Go语言开发的IDE
文章目录 1.前言2.几种ide2.1 Goland2.2 VsCode示例 2.3 LiteIDE2.4 Eclipse插件GoClipse2.5 Atom2.6 Vim2.7 Sublime Text 3.总结写在最后 1.前言 Go语言作为一种新兴的编程语言,近年来受到了越来越多的关注。 它以其简洁、高效和并发性能而闻名,被广…...
1、设计模式简介(7大原则,3大类)
设计模式有7个原则:单一职责原则、开闭原则、里氏代换原则、依赖倒转原则、接口隔离原则、合成/聚合复用原则、迪米特法则 1.单一职责原则 单一职责原则又称单一功能原则,它规定一个类只有一个职责。如果有多个职责(功能&#x…...
SpringBoot-17-MyBatis动态SQL标签之常用标签
文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...
vscode里如何用git
打开vs终端执行如下: 1 初始化 Git 仓库(如果尚未初始化) git init 2 添加文件到 Git 仓库 git add . 3 使用 git commit 命令来提交你的更改。确保在提交时加上一个有用的消息。 git commit -m "备注信息" 4 …...
Spark 之 入门讲解详细版(1)
1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目,8个月后成为Apache顶级项目,速度之快足见过人之处&…...
突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合
强化学习(Reinforcement Learning, RL)是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程,然后使用强化学习的Actor-Critic机制(中文译作“知行互动”机制),逐步迭代求解…...
反向工程与模型迁移:打造未来商品详情API的可持续创新体系
在电商行业蓬勃发展的当下,商品详情API作为连接电商平台与开发者、商家及用户的关键纽带,其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息(如名称、价格、库存等)的获取与展示,已难以满足市场对个性化、智能…...
从WWDC看苹果产品发展的规律
WWDC 是苹果公司一年一度面向全球开发者的盛会,其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具,对过去十年 WWDC 主题演讲内容进行了系统化分析,形成了这份…...
基于ASP.NET+ SQL Server实现(Web)医院信息管理系统
医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上,开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识,在 vs 2017 平台上,进行 ASP.NET 应用程序和简易网站的开发;初步熟悉开发一…...
TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案
一、TRS收益互换的本质与业务逻辑 (一)概念解析 TRS(Total Return Swap)收益互换是一种金融衍生工具,指交易双方约定在未来一定期限内,基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...
【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)
升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点,但无自动故障转移能力,Master宕机后需人工切换,期间消息可能无法读取。Slave仅存储数据,无法主动升级为Master响应请求ÿ…...
HDFS分布式存储 zookeeper
hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架,允许使用简单的变成模型跨计算机对大型集群进行分布式处理(1.海量的数据存储 2.海量数据的计算)Hadoop核心组件 hdfs(分布式文件存储系统)&a…...
