如何输出在数组

时间:2016-03-17 17:12:03

标签: c++

这是我的代码。我希望能够输入九个考试成绩,然后让程序对分数进行排序并按降序显示。但是当我输入考试成绩时,例如65,它只输出'6'而不是'65'。我做错了什么?

#include <iostream>
#include <string>
#include <iomanip>

using namespace std;

int main() 
{
string tests;
double i;
double j;



std::string person;
cout << "Please enter your name" << endl;
getline( std::cin, person );


for (i = 0; i < 9; i++)
{
    cout << "Enter the grade you received for exam ";
    cout << i + 1;
    cout << " ";
    cin >> tests[i];
    cin.get();
}

for (i = 0; i <= 8; i++)
{
    for (j = i +1; j < 9; j++)
    {
        double temp;
        if (tests[i] < tests[j])
        {
            temp = tests[i];
            tests[i] = tests[j];
            tests[j] = temp;
        }
    }
}

for (j = 0; j < 9; j++)
{
    cout << tests[j] << endl;
}
return 0;
}

1 个答案:

答案 0 :(得分:0)

您的代码的主要问题是您将用户输入转换为字符串

string是一个几乎的类,相当于char类型的数组,因此调用string tests 几乎相当于调用{{ 1}},因此当您输出文本[ x ]时,您输出的是一个字符,其字符串数组中的位置为 x

更好的做法是使用 int 类型的数组:

char tests[]

或者如果你的数组需要一个可变长度,你可以使用std :: array,std :: vector或动态数组。