这是我尝试让用户将值输入到数组中。然后将其转换为打印的星号数量

Posted

技术标签:

【中文标题】这是我尝试让用户将值输入到数组中。然后将其转换为打印的星号数量【英文标题】:This is my attempt at having a user input a value into an array. Then to covert it to an amount of asterisks printed 【发布时间】:2020-02-22 22:20:04 【问题描述】:

但是,当尝试将用户值分配给星型数组然后为每 1000 人打印一个星号时,这是我想出的,并且在尝试以这种方式分配时似乎遇到了错误。我只有几周的 C++ 编程,从事工业维护工作,我的主要编程知识来源来自 PLC。是否有任何提示以这种方式将值分配给数组。

#include<iostream>
#include<string>

using namespace std;

int pop[5], stars[5];
string out[] =  0, 0, 0, 0, 0 ;

int main()

    cout << "\n\t\tPlease enter the population of 4 cities:";
    cout << "\n\t\tPopulation of city 1: "; cin >> pop[1];
    cout << "\n\t\tPopulation of city 2: "; cin >> pop[2];
    cout << "\n\t\tPopulation of city 3: "; cin >> pop[3];
    cout << "\n\t\tPopulation of city 4: "; cin >> pop[4];
    stars[1] = pop[1] / 1000, stars[2] = pop[2] / 1000, stars[3] = pop[3] / 1000, stars[4] = pop[4], out[1].assign(stars[1], "*"), out[2].assign(stars[2], "*"), out[3].assign(stars[3], "*"), out[4].assign(stars[4], "*");
    cout << "\n\n\tCity 1: " << out[1];
    cout << "\n\tCity 1: " << out[2];
    cout << "\n\tCity 1: " << out[3];
    cout << "\n\tCity 1: " << out[4];
    return 0;

【问题讨论】:

与您的问题无关:c++ 中的数组是 0 索引的。 int pop[5] 自动为 5 个整数创建空间。通过仅索引 1-4,您将错过数组中的第一个 int 。可以声明int pop[4],通过pop[0]pop[1]等方式访问。 如果您正在寻找代码审查(如果这按预期工作),请考虑将其发布到 Code Review 感谢您提供的信息,无论是否相关,肯定有帮助! 【参考方案1】:

首先,用分号分隔你的作业,每行使用一行。

stars[1] = pop[1] / 1000;
stars[2] = pop[2] / 1000;
// ...

您应该使用字符 (char) 而不是 c 字符串 (char*) 作为 std::string::assign 的第二个参数:

out[1].assign(stars[1], '*') // correct
out[1].assign(stars[1], "*") // wrong

【讨论】:

我不能,实际上可以,相信我把 " 误认为 ' 。另外关于我的道歉草率的格式..

以上是关于这是我尝试让用户将值输入到数组中。然后将其转换为打印的星号数量的主要内容,如果未能解决你的问题,请参考以下文章

如何将值添加到数组中而不将其在for循环外重置为0

如果选中,则反应复选框将值添加到数组

Firestore 将值添加到数组字段

SQL 命令提示弹出框让用户输入用户名以将值添加到 alter user "username" 命令

如何将值返回到数组

创建一个允许用户输入数据的PHP文件,然后将其添加到我的数据库中[关闭]