这是我尝试让用户将值输入到数组中。然后将其转换为打印的星号数量
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
【讨论】:
我不能,实际上可以,相信我把 " 误认为 ' 。另外关于我的道歉草率的格式..以上是关于这是我尝试让用户将值输入到数组中。然后将其转换为打印的星号数量的主要内容,如果未能解决你的问题,请参考以下文章