Использование циклов for для ввода данных в массивы - PullRequest
0 голосов
/ 29 июня 2018

Итак, у меня есть эта программа на C ++, которая содержит файл .h и main.cpp. В .h у меня есть этот класс:

class Plaza
{
public:

    int length;
    double x;
    double y;

    Plaza();
    ~Plaza();

};

В main.cpp я пытаюсь ввести данные, используя цикл for, и мне удается сохранить данные для состояния int i = 0, но при увеличении i введенные данные не сохраняются в массив , Для внутреннего цикла я пытался поставить j < n, j < n-1 и j < n+1, но это не работает. Как я могу сохранить все данные и распечатать их?

#include <iostream>
#include "Plaza.h"

using namespace std;

int main() {

    int n;
    Plaza *obj1;

    cout << "Enter limit number (N): ";
    cin >> n;

    obj1 = new Plaza[n];

    for (int i = 0; i < n; i++) {
        cout << "Enter length, x and y for " << i + 1 << ". plaza: " << endl;
        for (int j = 0; j < 1; j++) {
            cin >> obj1[j].length;
            cin >> obj1[j].x >> obj1[j].y;
        }
    }

    for (int i = 0; i < n; i++) {
        cout << i + 1 << ". " << obj1[i].x << " " << obj1[i].y << " Length=" << obj1[i].length;
    }

    delete[] obj1;
    system("pause");
    return 0;
}

Это печать, которую я получаю:

enter image description here

Ответы [ 2 ]

0 голосов
/ 29 июня 2018
for (int i = 0; i < n; i++) {
        cout << "Enter length, x and y for " << i + 1 << ". plaza: " << endl;
        for (int j = 0; j < 1; j++) {
            cin >> obj1[j].length;
            cin >> obj1[j].x >> obj1[j].y;
        }
    }


Зачем нужна секунда для цикла. Если вы проверяете значение j, оно всегда равно 0, поэтому вставляется только одно значение.,
попробуйте это

for (int i = 0; i < n; i++) {
            cout << "Enter length, x and y for " << i + 1 << ". plaza: " << endl;

                cin >> obj1[i].length;
                cin >> obj1[i].x >> obj1[i].y;
           }
        }
0 голосов
/ 29 июня 2018
for (int i = 0; i < n; i++) {
    cout << "Enter length, x and y for " << i + 1 << ". plaza: " << endl;
    for (int j = 0; j < 1; j++) {
        cin >> obj1[j].length;
        cin >> obj1[j].x >> obj1[j].y;
    }
}

Вот ваш виновник. Избавьтесь от внутреннего цикла for (не операторов cin, только строки for ... и его закрывающей скобки) и замените obj[j] на obj[i]. Вы в настоящее время неоднократно пишете obj[0].

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