Как вводить данные от пользователя в 2d массив и ориентироваться на пользователя c ++ - PullRequest
1 голос
/ 18 апреля 2020

Итак, я довольно новичок в 2d массивах в c ++ и знаю, что я делаю что-то не так, но я не уверен, что.

#include <iostream>
using namespace std;

int main(){
  string favBands[10][2];

  cout << "Welcome to the favorite band printer outer!" << endl;

  int count = 1;
  string band;
  string song;
  for(int i = 0; i < 10; i++){
    for(int j = 1; j < 2; j++){
      cout << "Enter your number " << count << " band:\n" << endl;
      count += 1;
      cin >> band;
      favBands[i][j] = band;
      cout << "Enter " << favBands[i][j] << "'s best song:\n" << endl;
      cin >> song;
      favBands[i][j] = song;
    }
  }
}

Я хочу попросить пользователя ввести свои 10 любимых групп, а затем спросить для их любимой песни из этой группы в паре. Например:

Enter your number 1 favorite band:

Black Eyed Peas (user input)

Enter your favorite Black Eyed Peas song:

Boom Boom Pow (user input)

Я могу сделать все это, но проблема возникает, когда я пытаюсь распечатать массив для пользователя. Я думаю, что моя проблема может заключаться в том, как я ввожу пользовательские данные в мой массив, но я не уверен, как это исправить. Спасибо!

Ответы [ 2 ]

0 голосов
/ 18 апреля 2020

Вам понадобится только один для l oop. видите, мы храним данные для 10 пользователей. и для каждого пользователя мы берем две данные в index 0 и index 1. Так что нам не нужна секунда для l oop. Пожалуйста, соблюдайте код и спросите, если у вас все еще есть путаница. Я тоже буду рад это понять.

#include <iostream>
using namespace std;

 int main(){
string favBands[10][2];

cout << "Welcome to the favorite band printer outer!" << endl;

int count = 1;
string band;
string song;
for(int i = 0; i < 10; i++)
{
  cout << "Enter your number " << count << " band:\n" << endl;
  count += 1;
  cin >> band;
  favBands[i][0] = band;



  cout << "Enter " << favBands[i][0] << "'s best song:\n" << endl;
  cin >> song;
  favBands[i][1] = song;

  } 
 }
0 голосов
/ 18 апреля 2020

Позвольте мне предложить использовать два отдельных массива вместо двумерного массива, один для групп и один для песен, а затем cout'ing песню, например:

    #include <iostream>
    using namespace std;
    int main() {
        string favBands[10];
        string favSongs[10];

        cout << "Welcome to the favorite band printer outer!" << endl;

        int count = 1;
        string band;
        string song;
        for (int i = 0; i < 10; i++) {
            cout << "Enter your number " << count << " band:\n" << endl;
            count += 1;
            cin >> band;
            favBands[i] = band;
            cout << "Enter " << favBands[i] << "'s best song:\n" << endl;
            cin >> song;
            favSongs[i] = song;
            cout << "Your favorite song by " << favBands[i] << " is " << favSongs[i] << ".\n";
        }
    }

Хотя и группы, и песни являются строками, 2D-массивы на самом деле не лучше всего подходят для такого типа проблем.

...