【发布时间】:2015-09-07 18:15:14
【问题描述】:
对于这个令人困惑的标题,我真的很抱歉,但如果不向您展示代码,我不知道如何表达这个问题。所以这是我的问题。我正在尝试打印出 20 个学生信息,这些信息都包含在 3 个不同的数组中(身份证号、姓氏和年龄)。数组(和向量)是这样的:
vector<int> studentNumber (20);
int age [20] {20, 21, 22, 42, 55, 28, 20, 20, 19,19, 22, 23, 25, 26, 24, 23, 19, 22, 21, 20};
string lastName [20] {"Simmons", "Jones", "James", "Little", "Russell", "Haynes", "Marcotte", "Kemper", "Vandergore", "Hume", "Stephens", "Jensen", "Biersack", "Sykes", "Joseph", "Dunn", "Hai", "Meteos", "Aphromoo", "Faker"};
我正在使用 3 个 for 循环来打印所有这些信息,并且它们都可以正常工作。它们是这样的:
void getAllStudentInfo() {
for (vector<int>::size_type i = 0; i <= 20; i++) {
cout << "Student's ID number is: " << 400 + i << endl;
}
for (int i = 0; i < 20; i++) {
cout << "Student's last name is: " << lastName[i] <<endl;
}
for (int i = 0; i < 20; i++) {
cout << age[i] << endl;
}
return;
}
所以他们现在所做的是将信息打印为 20 个身份证号码、20 个姓氏和 20 个年龄。我希望他们做的是打印每个数组中的前 3 个元素,然后是后三个元素,然后是第三个元素,依此类推。所以它看起来像,(身份证号,姓氏,年龄)重复二十次,而不是(身份证号x20,姓氏x20,年龄x20)。我将如何重构它以使其看起来像我想要的那样?
【问题讨论】:
-
std::cout同一循环中的不同信息。 -
并将
<= 20更改为< 20。 -
他们都需要一个数组来做到这一点吗?当我结合姓氏和年龄时效果很好,但我如何整合 ID 号?
-
想通了。谢谢大家。
-
(小点:“refactoring”意思是改变实现而不改变行为。)
标签: c++ arrays for-loop vector