вот собственно функция, которая не хочет вводить массив в память помогите конкретно по коду Код: Код | int input(int *z, int **&arr, int *N, int *M) { *z = 1; char input_perem[256], button_key_ran; int k, i, j; cout << "1. С клавиатуры" << endl; cout << "2. Генератором случайных чисел" << endl; button_key_ran = '0'; while (button_key_ran != '1' && button_key_ran != '2') { button_key_ran = _getch(); } if (button_key_ran == '1') { while (N == 0) { k = 0; cout << "Введите кол-во вещественных строк квадратной матрицы (1>...>100): "; cin >> input_perem; for (i = 0; i < strlen(input_perem); i++) { if (input_perem[i] < '0' || input_perem[i] > '9') { k++; } } if (k == 0 && atoi(input_perem) < 100 && atoi(input_perem) > 1) { *N = atoi(input_perem); } } while (M == 0) { k = 0; cout << "Введите кол-во столбцов квадратной матрицы (1>...>100): "; cin >> input_perem; for (i = 0; i < strlen(input_perem); i++) { if (input_perem[i] < '0' || input_perem[i] > '9') { k++; } } if (k == 0 && atoi(input_perem) < 100 && atoi(input_perem) > 1) { *M = atoi(input_perem); } } cout << "Введите элементы массива" << endl; *arr = new int[*N]; for (i = 0; i<*N; i++) { arr[i] = new int[*M]; } //ввод с клавиатуры for (i = 0; i<*N; i++) { for (j = 0; j <*M; j++) { arr[i][j] = 0; while (arr[i][j] == 0) { k = 0; cout << "A[" << i + 1 << "][" << j + 1 << "]: "; cin >> input_perem; for (int x = 0; x < strlen(input_perem); x++) { if (x == 0 && input_perem[x] == '-') { k--; } if (input_perem[x] < '0' || input_perem[x] > '9') { k++; } } if (k == 0 && atoi(input_perem) < 2e3 && atoi(input_perem) > -2e3) { arr[i][j] = 1; } } arr[i][j] = atoi(input_perem); } } return **arr; } if (button_key_ran == '2') { //ввод рандомно while (N == 0) { k = 0; cout << "Введите кол-во вещественных строк квадратной матрицы (1>...>100): "; cin >> input_perem; for (i = 0; i < strlen(input_perem); i++) { if (input_perem[i] < '0' || input_perem[i] > '9') { k++; } } if (k == 0 && atoi(input_perem)<100 && atoi(input_perem)>1) { *N = atoi(input_perem); } } while (M == 0) { k = 0; cout << "Введите кол-во вещественных столбцов квадратной матрицы (1>...>100): "; cin >> input_perem; for (i = 0; i < strlen(input_perem); i++) { if (input_perem[i] < '0' || input_perem[i] > '9') { k++; } } if (k == 0 && atoi(input_perem)<100 && atoi(input_perem)>1) { *M = atoi(input_perem); } }
int** arr = new int *[*N]; for (i = 0; i<*N; i++) { arr[i] = new int[*M]; }
for (i = 0; i <*N; i++) { for (j = 0; j <*N; j++) { arr[i][j] = rnd(-100, 100); } } } return 0; }
|
|