Объясните пожалуйста код [закрыт]

145
20 марта 2019, 21:30

Я немного не понимаю данный код, а точнее кусок кода, связанный с массивом и циклом for.

#include<iostream>
using namespace std;
int main()
{
    char find[3][3] = { {'0', '0', '0'}, {'0', '0', '0'}, {'0', '0', '0'} };
    for (int i = 0; i < 3; i++)
    {
        for (int x = 0; x < 3; x++)
        {
            cout << find[i][x];
        }
        cout << endl;
    }
    return 0;
}
Answer 1

Первый цикл for (int i = 0; i < 3; i++) отвечает за индекс строки. То есть им мы получаем, из какой строки мы будем брать значения из столбцов.

Второй цикл for (int x = 0; x < 3; x++) отвечает за индекс столбца. То есть им мы получаем, какой нам столбец выбрать в строке.

cout << find[i][x]; - выводим элемент массива из i-ой строчки и x-го столбца.

cout << endl; - после вывода строки переходим на следующую строчку. Если этой строки не будет, то программа так и продолжит выводить значения в одну строку.

Получится:

000000000

Вместо:

000
000
000

Также стоило бы добавить <<'\t' к cout << find[i][x];, чтобы значения не слипались. Н-р, 131 можно интерпретировать как 131, 13 и 1, 1 и 13, 1 и 3 и 1

Answer 2

Эх, Вас сейчас за минусят... Вы хоть учебник открывали? Можете не отвечать - и так видно Вот - см. комментарии

#include<iostream>
using namespace std;
int main()
{
    // Объявляем двумерный массив символов 3 на 3. И загоняем в него 3 одномерных массива-строки (000, 000 и 000)
    char find[3][3] = { {'0', '0', '0'}, {'0', '0', '0'}, {'0', '0', '0'} };
    //Здесь проход сверху в низ
    for (int i = 0; i < 3; i++){
        // Здесь проход с лева направо
        for (int x = 0; x < 3; x++){
        // Здесь выводим символ из ячейки массива
        cout << find[i][x];
        // Я бы добавил сюда разделитель, чтоб не 000, а, например, 0|0|0|
        }
    // Переход на новую строку
    cout << endl;
    }
    // Говорим всем, что программа выполнена без ошибок
    return 0;
    }
Answer 3
char find[3][3] = { {'0', '0', '0'}, {'0', '0', '0'}, {'0', '0', '0'} };

Мы создаем массив состоящий из 3 строк, в каждой из этих строк будет еще 3 значения

for (int i = 0; i < 3; i++)

Цикл отвечает за номер строки массива find

for (int x = 0; x < 3; x++)

Этот цикл отвечает за номер элемента в строке

READ ALSO
Как вставить строку в строку после определенного символа?

Как вставить строку в строку после определенного символа?

Необходимо вставить строку в другую строку, но после определенного символаБез использования String и других библиотек

224
Динамическая смена ui файлов в Qt

Динамическая смена ui файлов в Qt

Изучаю Qt, наткнулся на такую проблемуМне требуется быстро менять ui файлы по ходу выполнения программы

181
Скалярное произведение чисел (С++)

Скалярное произведение чисел (С++)

Есть код скалярного произведения:

145
Как решить задачу &ldquo;обратного&rdquo; рюкзака в c++?

Как решить задачу “обратного” рюкзака в c++?

Ввод данных точно также как в рюкзаке, только суммарный вес должен быть таким, что при добавлении любого другого объекта в оптимальное множество,...

161