Форум программистов, компьютерный форум CyberForum.ru

Неожиданное завершение программы на Windows - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Нюансы использования оператора запятая или что такое UB и с чем его едят http://www.cyberforum.ru/cpp-beginners/thread1787341.html
Почему студия и ideone выдают разные значения для a и b? в студии выходит a = 10 , b = 10 в ideone a = 20, b =10 #include <iostream> int main() { int a;
C++ Сортировка массива: сначала расположить положительные, а потом - отрицательные элементы Проверьте пожайлуста мое решение :) . Эффективен ли вообще такой подход? Задание: Преобразовать массив , так чтобы сначала располагались положительные эл-ты а потом отрицательные. (0-считать положительным) Мое решение: #include <iostream> using namespace std; http://www.cyberforum.ru/cpp-beginners/thread1787335.html
C++ Что делает cin.ignore();
Поясните мне, какое действие выполняет функция: cin.ignore(); Лучше на примере каком нибудь!(с комментариями) Может быть это что-то типа continue Добавлено через 3 минуты На этот вопрос меня натолкнула вот эта прога которую я нарыл в нэте! #include <iostream> using namespace std;
C++ Палиндром. Почему WA1?
Одно из известных развлечений со словами - составление палиндромов. Палиндромом называется предложение, которое, после удаления из него всех пробелов и знаков препинания, читается одинаково справа налево и слева направо. Создатели одного известного текстового редактора пишут новую версию модуля для проверки орфографии. Они хотят реализовать возможность вывода подсказки для пользователя на тот...
C++ Storage durations http://www.cyberforum.ru/cpp-beginners/thread1787259.html
Страшно обилие реализаций абстракции и правил их применения :) Лямбды, насколько я помню - это объекты (анонимные функтоуры?), создаются без нью, живут на стеке, делита не требуют... Или я все спутал с прямым углом? По мотивам этой темы http://www.cyberforum.ru/cpp-beginners/thread1786764.html создана новая, т.к. там обсуждение ушло за рамки вопроса ТС
C++ Множественное наследование Доброго времени суток. Есть ряд операций. Логически операции делятся на группы ( к примеру, запрос, ответ, чтение из буфера и .п.). В зависимости от группы, появляется специализация ( у всех операций есть общие черты (наличие имени операции), общий метод, но у каждой группы есть свои спец. методы...к примеру, сформировать запрос). В двух разных местах кода нужно обращаться к классам , как к... подробнее

Показать сообщение отдельно
IrishSilvan
0 / 0 / 0
Регистрация: 29.05.2015
Сообщений: 5
Завершенные тесты: 1

Неожиданное завершение программы на Windows - C++

29.07.2016, 18:30. Просмотров 284. Ответов 10
Метки (Все метки)

Вообщем такая беда, решал задачку с одного сайта, решал ее в облаке от Cloud9, там Ubuntu стоит. Все замечательно работает не придраться. При переносе в Windows(Пользуюсь CLion) программа неожиданно вылетает с ошибкой посреди выполнения своего кода. Сначала работала на Debug, а на Realese нет. Потом перестала работать в любом исполнении. Прошу кому не сложно, посмотреть опытным взглядом и ткнуть носом в ошибки, сразу предупреждаю что я новичок, поэтому ошибки скорее всего банальные.
C++
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#include <iostream>
#include <time.h>
#include <iomanip>
 
using namespace std;
 
//Прототипы функций
void random_massive(float, float);
void print_massive(void);
void find_min(void);
void sort_matrix(void);
float random_number(float, float);
 
float massive[9][9];
int number_s0; //Храним номер строки для перестановки
 
int main() {
    cout << fixed;
    cout << setprecision(4); //Устанавливаем точность для всех выводимых чисел, только для cout
    srand(time(NULL)); //Для полной рандомизации генерируемых чисел
    float n0, n1; //Переменные диапазона чисел
    cout << "Введите диапазон генерируемых чисел" << endl;
    cout << "Укажите нижний предел:" << endl;
    cin >> n0;
    cout << "Укажите верхний предел:" << endl;
    cin >> n1;
    random_massive(n0,n1); //Вызов функции генерации массива по заданным параметрам
    cout << "Массив 10x10:" << endl;
    print_massive(); //Вызов функции вывода готового массива на экран
    cout << endl;
    find_min(); //Находим минимальный элемент
}
 
//Функция - Генератор массива со случайными числами
void random_massive(float a, float b)
{
    for(int s = 0; s < 10; s++) { //Пока не дошли до 10й строки...
        for(int i = 0; i < 10; i++) { //Перебираем элементы в строке по индексам до 10го
            massive[s][i] = random_number(a, b); //Запись в массив случайного числа
        }
    }
}
 
//Функция - Генератор случайных чисел
float random_number(float N0, float N1)
{
    float precision = 1.0 / (1.0 + rand() % 50); //Нахождение дробной части
    int spray = N1 - N0; //Вычисление диапазона допустимых чисел
    float number = ((N0 + (rand() % spray)) + precision); //Складываем все вместе и получаем случайное число в заданном диапазоне
    return number; //Возвращаем случайное число с дробной частью
}
 
//Функция - Вывод массива на экран в удобной для чтения форме
void print_massive(void)
{
    for(int s = 0; s < 10; s++) { //Пока не дошли до 10й строки...
        for(int i = 0; i < 10; i++) { //Перебираем элементы в строке по индексам до 10го
            cout << "\t" << massive[s][i]; //Выводим каждый элемент отдельно пользователю. 3 знака после запятой
        }
        cout << endl; //Когда строка закончилась, начинаем новую
    }
}
 
//Функция - Поиск наименьшего элемента
void find_min(void)
{
    int number_s;
    float min = massive[0][0];
    for(int s = 0; s < 10; s++) { //Пока не дошли до 10й строки...
        for(int i = 0; i < 10; i++) { //Перебираем элементы в строке по индексам до 10го
           if(massive[s][i] < min) { //Если текущий элемент меньше чем min
               min = massive[s][i]; //Записываем его в min
               number_s = s;
           }
        }
    }
    number_s0 = number_s; //Сохраняем номер строки для перестановки
    printf("Минимальный элемент %f, в строке под номером %i", min, number_s); //Вывод результата. Считать от 0!
    cout << endl;
    sort_matrix();
}
 
void sort_matrix(void)
{
    float old_s[9]; //Массив для временного хранения первой строки
    if(number_s0 != 0) { //Если нужно переместить не первую строку
        for(int i = 0; i < 10; i++) { //Перебираем элементы в строке по индексам до 10го
          old_s[i] = massive[0][i]; //Сохраняем первую(0) строку массива, во временный массив
          massive[0][i] = massive[number_s0][i]; //Переносим нужную строку на место первой
          massive[number_s0][i] = old_s[i]; //И записываем на место строки, которую уже переместили, строку которую мы спасли
        }
    }
    print_massive(); //Выводим массив на экран
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru