для вывода цикла не отображается - PullRequest
0 голосов
/ 03 февраля 2012

Этот код принимает входные данные для идентификации студента и их текущего баланса. -999 вводится как номер А, чтобы разорвать цикл, или будет работать до тех пор, пока не будет введено 30 учеников.

Предполагается, что мой цикл for в нижней части программы перечисляет введенные А-номер, Имя студента и их Баланс в обратном порядке, в котором они вводятся. Ничего не перечислено все же. Просто заголовок A-Number :, Student: и Balance:

Я знаю, что есть простое объяснение, но я просто не могу думать, и я надеюсь, что кто-то может указать мне на это ...

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

int main(){
    const int maxStudents = 30;
    struct Students{
        string studentName;
        int aNumber;
        double outstandingBalance;};

    Students students[maxStudents];

    int count = 0;
    for( ; count < maxStudents-1; count++)
    {
        cout<<"\nA-Number:";
        cin>>students[count].aNumber;
        if(students[count].aNumber == -999)
                break;
            cout<<"Student Name:";
            cin.ignore();
            getline(cin,students[count].studentName);
            cout<<"\nOutstanding Balance:";
            cin>>students[count].outstandingBalance;
    }

    cout<<setw(20)<<"\nA-Number "<<"Name "<<"Balance ";

    for( ; count >= maxStudents-1; count--)
        cout<<setw(20)<<students[count].aNumber<<" "<<students[count].studentName<<" "<<students[count].outstandingBalance<<endl;

    system("pause");
    return 0;
}

Ответы [ 2 ]

4 голосов
/ 03 февраля 2012

Ваш второй цикл никогда не запускается, потому что count уже слишком мал (count == maxStudents - 1, если цикл проходил полностью, поэтому вы можете получить один проход).Ваше условие цикла должно быть count >= 0.

0 голосов
/ 05 января 2013

Ваш цикл for в конце просто неверен. Использование:

for (int i=count; i=>0; i--)

Посмотрите внимательно, хотите ли вы показать (i) -ю запись в обратном порядке. Тогда ваш цикл должен начинаться с числа учеников . Как долго это должно бежать? Пока ваша 0-я запись не была достигнута. С каждой последовательностью вы уменьшаете i на 1. И наконец используете этот "i" (счетчик), чтобы использовать в качестве номера записи, которую вы пытаетесь отобразить.

В будущем рекомендуется использовать такие термины, как DISPLAY или COUT вместо LIST. и LIST также ссылается на связанные списки и многое другое.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...