一起使用数组和字符串

时间:2015-11-05 04:11:30

标签: c++ arrays string

所以我试图创建一个包含一些用户输入名称的数组,然后将这些名称与测试中的字母等级相关联(例如:A,B,C,D,F)。我的问题是,我如何使用数组接受用户输入的名称?

编辑:

对不起,这有点长,我不知道放哪个部分会有所帮助。完全不熟悉C ++,我似乎无法在网上找到任何有关此事的内容,哈哈。

这是一些代码。该程序当前要求用户提供测试分数,然后显示并删除最低测试分数,最后计算没有最低分数的分数的平均值。最终目标是向用户询问5个学生姓名,每个学生4个分数,然后降低每个学生的最低分数,并计算所有分数的平均值,无论学生如何。

#include <iostream>
#include <string>
using namespace std;

void getScore(int &);
int findLowest(int [], int);
void calcAverage(int [], int);

int main () {

const int NUM_SCORES = 5;
int scores[NUM_SCORES];

cout << "Welcome to test averages." << endl;
cout << "Please enter scores for " << NUM_SCORES << " students." << endl;
cout << endl;

for (int i = 0; i < NUM_SCORES; i++) {
    getScore(scores[i]);
}

for (int i = 0; i < NUM_SCORES; i++) {
    cout << "Score " << (i + 1) << ": " << scores[i] << endl;
}

cout << endl;
cout << "The lowest of these scores is " << findLowest(scores, NUM_SCORES) << endl;

calcAverage(scores, NUM_SCORES);

return 0;
}

void getScore(int & s) {

s = -1;
cout << "Please enter a test score: ";
cin >> s;

while (s < 0 || s > 100) {
    cout << "Score range must be from 0-100" << endl;
    cout << "Please re-enter a score: ";
    cin >> s;
}
}

int findLowest(int theArray [], int theArraySize) {

int lowest = theArray[0];

for (int i = 1; i < theArraySize; i++) {

    if (theArray[i] < lowest) {
        lowest = theArray[i];
    }
}

return lowest;
}

void calcAverage(int theArray [], int theArraySize) {

int sum = 0;

for (int i = 0; i < theArraySize; i++) {
    sum += theArray[i];
}

double average = (sum - findLowest(theArray, theArraySize)) / (theArraySize - 1.0);
cout << "The average is " << average << endl;

}

1 个答案:

答案 0 :(得分:0)

getline

尝试#include <string>
std::string names[5];
for (int i = 0; i < 5; ++i){
    getline(std::cin, names[i]);
}