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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Cavil
0 / 0 / 0
Регистрация: 11.10.2012
Сообщений: 8
#1

Крашит из-за кривого условия, как залатать - C++

11.10.2012, 04:04. Просмотров 236. Ответов 1
Метки нет (Все метки)

Есть простая функция для заполнения двух массивов. Как заполнять -- дано по условию, точнее дано по условию как заполнять b.

C++
1
2
3
4
5
6
7
8
9
10
11
12
void input(int**a, int**b, int n)
{
srand(GetTickCount());
for (int i=0; i<n; i++)
{
    for(int j=0;j<n;j++)
    {
        a[i][j]=1+rand() % 99;
        if (i<=j) {b[i][j]=1/(i+j-1);} else {b[i][j]=1/(i+j+1);}
    }
}
}
Именно на нем и крашит, я конечно понимаю, что на ноль делить нельзя. Но если во внешнем цикле поменять начало счетчика на отличное от нуля, теряются элементы.
C++
1
if (i<=j) {b[i][j]=1/(i+j-1);} else {b[i][j]=1/(i+j+1);}
Как залатать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.10.2012, 04:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Крашит из-за кривого условия, как залатать (C++):

Как залатать дыры? - SQL Server
Здравствуйте. Имеем простенький колл-центр. При поступлении звонка ему присваивается порядковый номер, т.е. 1, 2, 3, ..., n, n+1... и...

Линеаризация кривого графика - MS Excel
Прошу помощи в решении интересной задачи, имею график построенный по двум колонкам m3\h и Value, он не линеен. Задача: 1. как...

Может ли игра тормозить из-за кривого кряка? - Игры
может ли игра подтормаживать из за какого нибудь &quot;кривого&quot; noCD???? или из за установки мода?

Крашит RtlAvlRemoveNode - Программирование драйверов
Доброго времени суток, при использовании функции RtlAvlRemoveNode на windows 10 происходит краш системы. использую следующим образом ...

Крашит Релиз - Delphi FireMonkey
Всем привет пытаюсь подписать приложение на андройд как в этой статье http://www.cyberforum.ru/delphi-firemonkey/thread1107965.html ...

Инжектор крашит CS:GO на Windows 10 - C++ WinAPI
Здравствуйте! Столкнулся с проблемой при которой инжектор крашит CS:GO, при этом на Windows 10, на остальных вроде всё нормально. Ошибка...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
DU
1483 / 1059 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
11.10.2012, 04:20 #2
перед делением проверить что 1/(i+j-1) - это не деление на ноль. если не деление - то оставить тот код, который сечас, если же это деление на ноль, то записать в б какое-то значение

C++
1
2
3
4
5
6
7
8
9
const int chactnoe = i+j-1;
if (chactnoe != 0)
{
   b[i][j] = 1/chactnoe;
}
else
{
   b[i][j] = что-то
}
пишите по нормальному, не в одну строку. в однострочном коде плохо понять, что происходит. вот если еще одну проверку в ту же строку добавить, получится вообже ахтунг а не код.
не экономте на строчках. они помогают быстрее понимать то, что написано. + дебажится в них проще.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.10.2012, 04:20
Привет! Вот еще темы с ответами:

DownloadString крашит приложение - C#
Всем привет! Уже прошло очень много времени но я так и не понял из за чего у некоторых людей данная функция крашит приложение. Моим...

Резидентная программа крашит DOS - Assembler
Задание: Написать резидентную программу, которая по комбинации Ctrl+alt+e показывает на экране фамилию с интервалом в 4 секунды. Все...

Десериализация Json крашит приложение - C#
Впервые работаю с такими вещами, я тут чайник, но.... {&quot;response&quot;: {&quot;count&quot;:958, &quot;items&quot;: &quot;, ...

Обрезает uchar и крашит процесс - Visual C++
unsigned char *a=&quot;...&quot; int bc(unsigned char *b, size_t len){ ... } int at(){ size_t len; len = (size_t)sizeof(a); ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru