Заполнение двумерного массива С
Нужно заполнить двумерный массив случайными значениями от 0 до 9, но возникает ошибка. Помогите, как это исправить?
#include #include #define R 2 #define C 4 int main(void) < int arr[R][C]; for (int i = 0; i < R; ++i) for (int j = 0; j < C; ++j) < arr[i] = rand() % 9; arr[j] = rand() % 9; printf("arr[%d][%d] = %d\n", i, j, arr[i][j]); >return 0; >
Отслеживать
задан 5 дек 2020 в 15:05
Listopad02 Listopad02
1,198 1 1 золотой знак 6 6 серебряных знаков 21 21 бронзовый знак
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
#include #include # include #define R 2 #define C 4 int main(void) < // чтобы не было одинаковых случайных чисел всегда srand(time(NULL)); int arr[R][C]; for (int i = 0; i < R; ++i) for (int j = 0; j < C; ++j) < // % - это остаток от деления // % 10 - даст числа от 0 до 9 arr[i][j] = rand() % 10; printf("arr[%d][%d] = %d\n", i, j, arr[i][j]); >return 0; >
Отслеживать
ответ дан 5 дек 2020 в 15:11
17.1k 1 1 золотой знак 9 9 серебряных знаков 33 33 бронзовых знака
- c
- массивы
- генерация-случайных-данных
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.10.27.43697
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Как заполнить двумерный массив на C++
Во всех вариантах для проверки работы программы используется функция вывода содержимого массива на экран:
void printArray(int array[][4], const int row, const int column) < cout >
Как заполнить двумерный массив с клавиатуры
Довольно часто приходится заполнять массивы с клавиатуры, поэтому подробно рассмотрим этот момент на примере следующей программы
#include #include using namespace std; int main() < const int row = 3, column = 4; //размеры массива int array[row][column]; //двумерный массив for(int i = 0; i < row; i++) //строки массива < cout > array[i][j]; //запоминаем введенное значение > > printArray(array, row, column); //печатаем полученный массив >
Мы просто проходим двумя циклами for (один вложен в другой) по массиву. Первый цикл считает строки, второй столбцы. Когда все столбцы (значения) первой строки пройдены, то основной цикл переходит на вторую строку, а вложенный цикл опять начинает проходить по строке с начала, считая ее столбцы.
Как заполнить двумерный массив случайными числами
Иногда приходится рандомно заполнять массив. На примере следующей программы мы разберем то, как заполнять двумерный массив случайными числами. Смотрим код
#include #include #include #include using namespace std; int main() < const int row = 5, column = 4; //размеры массива int array[row][column]; //двумерный массив srand(time(NULL)); for(int i = 0; i < row; i++) //строки массива for(int j = 0; j < column; j++) //столбцы массива array[i][j] = 1 + rand() % 100; //заполняем текущую ячейку printArray(array, row, column); //печатаем полученный массив >
Для генерации случайных величин в С++ служит функция rand(). В данном случае она генерирует псевдослучайные величины в интервале от 1 до 100, т.к. началом у нас задана величина 1, а смещением величина 100.
Как заполнить двумерный массив из файла
Рассмотрим последний вариант заполнения — это заполнение двумерного массива из файла. Естественно, что в папке с проектом у нас должен быть заранее подготовленный текстовый файл array.txt, с которого мы будем читать числа в массив. У меня был подготовлен файл, содержащий 35 чисел, разделенных символами пробела, табуляции или перевода строки (матрица 5 на 7).
Кстати, на форуме есть тема, посвященная чтению и записи из файлов. Смотрим код
#include #include #include using namespace std; int main() < const int row = 5, column = 7; int array[row][column]; //создаем объект класса ifstream //и сразу указываем файл, с которого будем читать ifstream f("array.txt"); //читаем файл и прочитанное запоминаем в массив for(int i = 0; i < row; i++) for(int j = 0; j < column; j++) f >> array[i][j]; //печатаем полученный заполненный массив printArray(array, row, column); return 0; >
Как видите, стандартное чтение из файла выполняется достаточно просто. Для этого мы используем класс ifstream , на основе которого создаем объект f и указываем файл, с которого будем выполнять чтение. Далее в циклах (они нужны, как вы знаете, для похода по двумерному массиву и, соответственно, по файлу) мы с помощью уже привычного оператора ( >> ) «взять из потока», берем из потока (в потоке у нас находится очередное считанное из файла значение) значение и сохраняем его в очередную ячейку массива.
Заполнить двумерный массив с клавиатуры
помогите пожалуйста, как заполнить двумерный массив в ручную ?
лазил по сайтам ничего не понял .
если не тяжело то и код пожалуйста .
Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Объявить двумерный массив динамически, заполнить его с клавиатуры и отсортировать
Итак, ребят. Задачка вот какая: нужно объявить двумерный массив динамически, заполнить его с.
Массив: Подскажите, как задать размерность массива с клавиатуры и заполнить этот массив с клавиатуры?
Всем привет! Подскажите как задать размерность массива с клавиатуры и заполнить этот массив с.

Дано массив М*М (м- из клавиатуры), массив заполнить на rand и поменять местами
Дано массив М*М (м- из клавиатуры), массив заполнить на rand Поменять местами 1строчка из.

Заполнить двумерный массив по спирали
Здравствуйте. Помогите пожалуйста решить задачу с двумерным массивом. Нужно заполнить массив.
183 / 182 / 56
Регистрация: 10.06.2011
Сообщений: 871
Schutskiy Denic,
1 2 3 4 5 6
int a = 10, b = 20; //кол-во строк и столбцов int arr[a][b]; for (int i = 0; i b; i++) //проход столбцов for (int j = 0; j a; j++) //проход строк scanf("%d", &a[a][b]);
Регистрация: 10.10.2013
Сообщений: 189
а для вывода такойже цикд но в принтф ?
183 / 182 / 56
Регистрация: 10.06.2011
Сообщений: 871
Schutskiy Denic, да
Регистрация: 10.10.2013
Сообщений: 189
а как в принте записать чтоб выводило как матрицу?
183 / 182 / 56
Регистрация: 10.06.2011
Сообщений: 871
Schutskiy Denic,
1 2 3 4 5 6 7 8 9
int a = 10, b = 20; //кол-во строк и столбцов int arr[a][b]; for (int i = 0; i b; i++) //проход столбцов { for (int j = 0; j a; j++) //проход строк printf("%d ", arr[a][b]); printf("\n"); }
Регистрация: 10.10.2013
Сообщений: 189
не подскажите случайно как менять конкретные строчки местами?
183 / 182 / 56
Регистрация: 10.06.2011
Сообщений: 871

Сообщение было отмечено Памирыч как решение
Решение
Schutskiy Denic, вроде так должно быть:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
main() { void copyString(int [][], int , int , int , int ); int a = 10, b = 20; //кол-во строк и столбцов int arr[a][b]; int st1, st2; for (int i = 0; i b; i++) //проход столбцов { for (int j = 0; j a; j++) //проход строк scanf("%d", &arr[a][b]); } scanf("%d %d", &st1, &st2); //вводим значения какие строки хотим поменять местами copyString(arr, a, b, st1, st2); for (int i = 0; i b; i++) //проход столбцов { for (int i = 0; i a; i++) //проход строк printf("%d ", arr[a][b]); printf("\n"); } } void copyString(int a[][], int str, int column, int s1, int s2) { int A[str]; for ( int i = 0; i str; i++) { A[i] = a[i][s1]; a[i][s1] = a[i][s2]; a[i][s2] = A[i]; } }
morozkod / main.cpp
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
| # include |
| # include |
| # include |
| using namespace std ; |
| int main () |
| const int n = 10 ; |
| int a; |
| int mas[n][n]; |
| // смысловая нагрузка |
| srand ( time ( NULL )); |
| for ( int i = 0 ; i < n; i++) |
| for ( int j = 0 ; j < n; j++) |
| a = rand () % 3 ; |
| mas[i][j] = a; |
| > |
| > |
| // вывод |
| for ( int i = 0 ; i < n; i++) |
| for ( int j = 0 ; j < n; j++) |
| cout. width ( 3 ); |
| cout |
| > |
| cout |
| > |
| return 0 ; |
| > |