You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++不使用vector实现向数组末尾插入元素的问题咨询

C++代码修正说明

原有代码存在的问题

  • 命名空间引用错误:cout、cin属于std命名空间,未加前缀或引入命名空间会直接编译失败
  • 变量类型不符合需求:你定义的name、score是单个char类型,仅能存储一个字符,无法存储完整的姓名、分数;一维字符数组仅能存储1个字符串,要存储10组玩家数据需要使用二维字符数组,或更安全的std::string类型
  • 基础语法错误:第二个cout语句末尾缺失分号;for循环的条件分隔符应为分号,且循环变量i未提前声明类型
  • 数组追加逻辑缺失:没有变量记录数组当前已存储的元素数量,无法定位数组末尾执行追加操作

可运行的修正代码

以下代码实现最多存储10组玩家数据,每次输入后追加到数组末尾的逻辑:

#include <iostream>
// 定义数组最大存储量
const int MAX_PLAYER = 10;

int main() {
    // 二维数组存储10个玩家姓名,每个姓名最多支持19个字符
    char playerName[MAX_PLAYER][20];
    // 数组存储10个玩家分数
    int playerScore[MAX_PLAYER];
    // 记录当前已存储的玩家数量,也用于定位数组末尾位置
    int curSize = 0;
    
    // 循环输入10次的逻辑,不需要可以去掉外层for循环
    for (int i = 0; i < MAX_PLAYER; i++) {
        char inputName[20];
        int inputScore;
        
        std::cout << "输入第" << curSize + 1 << "个玩家姓名:";
        std::cin >> inputName;
        std::cout << "输入第" << curSize + 1 << "个玩家分数:";
        std::cin >> inputScore;
        
        // 追加到数组末尾
        for (int j = 0; inputName[j] != '\0'; j++) {
            playerName[curSize][j] = inputName[j];
        }
        playerScore[curSize] = inputScore;
        curSize++;
        
        std::cout << "添加成功,当前已存储" << curSize << "组数据\n" << std::endl;
    }

    return 0;
}

如果你只需要单次输入追加,去掉外层的for循环,额外加curSize < MAX_PLAYER的越界判断即可。

内容的提问来源于stack exchange,提问作者admin3333

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 01:36:05