Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не вводится массив, цикл непроавильно работает 
:(
    Опции темы
Golifox
Дата 12.3.2018, 23:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 12.3.2018

Репутация: нет
Всего: нет



вот собственно функция, которая не хочет вводить массив в память
помогите конкретно по коду

Код:


Код

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;
}



PM MAIL   Вверх
xvr
Дата 13.3.2018, 16:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 35
Всего: 223



В while'ах указатели надо разьименовать перед тем как сравнивать

PS. Программа - жесть  smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1796 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.