华为OD机试 - 单词重量 - 数组(Python/JS/C/C++ 2025 C卷 100分)

在这里插入图片描述

2025C卷华为OD机试统一考试题库清单(持续收录中)以及考点说明(Python/JS/C/C++)

专栏导读

本专栏收录于《华为OD机试真题(Python/JS/C/C++)》

刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新。

一、题目描述

每个句子由多个单词组成,句子中的每个单词的长度都可能不一样,我们假设每个单词的长度Ni为该单词的重量,你需要做的就是给出整个句子的平均重量V。

二、输入描述

三、输出描述

四、测试用例

测试用例1:

1、输入

Who Love Solo

2、输出

3.67

3、说明

Who(3) + Love(4) + Solo(4) = 11,平均值 = 11/3 = 3.67

测试用例2:

1、输入

Hello World

2、输出

5.00

3、说明

Hello(5) + World(5) = 10,平均值 = 10/2 = 5.00

五、解题思路

主要解题思路

  1. 读取一行输入作为句子
  2. 将句子按空格分割成单词数组\
  3. 遍历每个单词,累加所有单词的长度
  4. 计算平均长度:总长度除以单词数量
  5. 格式化输出,保留两位小数

六、Python算法源码

# 读取一行输入作为句子
sentence = input()

# 将句子按空格分割成单词列表
words = sentence.split()

# 计算所有单词的总长度
total_length = sum(len(word) for word in words)

# 计算平均长度(单词的平均重量)
average_weight = total_length / len(words)

# 格式化输出,保留两位小数
print(f"{average_weight:.2f}")

七、JavaScript算法源码

// 引入readline模块用于读取控制台输入
const readline = require('readline');

// 创建readline接口
const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

// 监听输入事件
rl.on('line', (sentence) => {
    // 将句子按空格分割成单词数组
    const words = sentence.split(' ');
    
    // 计算所有单词的总长度
    let totalLength = 0;
    for (const word of words) {
        totalLength += word.length;
    }
    
    // 计算平均长度(单词的平均重量)
    const averageWeight = totalLength / words.length;
    
    // 格式化输出,保留两位小数
    console.log(averageWeight.toFixed(2));
    
    // 关闭readline接口
    rl.close();
});

八、C算法源码

#include <stdio.h>
#include <string.h>

int main() {
    // 定义字符数组存储输入的句子
    char sentence[1000];
    
    // 读取整行输入
    fgets(sentence, sizeof(sentence), stdin);
    
    // 去除换行符
    sentence[strcspn(sentence, "\n")] = 0;
    
    // 使用strtok分割字符串
    char *word = strtok(sentence, " ");
    int wordCount = 0;  // 单词计数
    int totalLength = 0;  // 总长度
    
    // 遍历所有单词
    while (word != NULL) {
        // 累加单词长度
        totalLength += strlen(word);
        // 单词计数加1
        wordCount++;
        // 获取下一个单词
        word = strtok(NULL, " ");
    }
    
    // 计算平均长度(单词的平均重量)
    double averageWeight = (double)totalLength / wordCount;
    
    // 格式化输出,保留两位小数
    printf("%.2f", averageWeight);
    
    return 0;
}

九、C++算法源码

#include <iostream>
#include <string>
#include <sstream>
#include <iomanip>

using namespace std;

int main() {
    // 定义字符串存储输入的句子
    string sentence;
    
    // 读取整行输入
    getline(cin, sentence);
    
    // 使用字符串流来分割句子
    stringstream ss(sentence);
    string word;
    int wordCount = 0;  // 单词计数
    int totalLength = 0;  // 总长度
    
    // 按空格分割并遍历所有单词
    while (ss >> word) {
        // 累加单词长度
        totalLength += word.length();
        // 单词计数加1
        wordCount++;
    }
    
    // 计算平均长度(单词的平均重量)
    double averageWeight = static_cast<double>(totalLength) / wordCount;
    
    // 设置输出格式,保留两位小数
    cout << fixed << setprecision(2) << averageWeight;
    
    return 0;
}

🏆下一篇:华为OD机试真题 - 简易内存池(Python/JS/C/C++ 2025 C卷 200分)

🏆本文收录于,华为OD机试真题(Python/JS/C/C++)

刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新。

在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

哪 吒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值