С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
2 / 2 / 0
Регистрация: 25.01.2013
Сообщений: 27
1

Элемент массива внезапно меняет свое значение, почему?

21.12.2014, 15:51. Показов 696. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Пишу программу кое-какую..и в одной функции происходит такая вот фигня:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
void screening_to_D3()
{
    int i;
    int j=0;
    float lol;
    for(i=0;i<d2s;i++){
        lol=calc_r(D2[i][1],D2[i][2]);
        if(lol<=3){
            d3s++;
            D3[d3s][0]=D2[i][0];
            D3[d3s][1]=i;
            D3[d3s][2]=D2[i][1];
            D3[d3s][3]=D2[i][2];
            D3[d3s][4]=calc_r(D2[i][1],D2[i][2]);
        }
    }
    printf("%f",D3[6][4]);
    
}
так вот, если я вывожу Д3[6][4](к примеру) после цикла for, то он равен 6.000000
если же я выведу все элементы в цикле после if, вот так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{
    int i;
    int j=0;
    float lol;
    for(i=0;i<d2s;i++){
        lol=calc_r(D2[i][1],D2[i][2]);
        if(lol<=3){
            D3[d3s][0]=D2[i][0];
            D3[d3s][1]=i;
            D3[d3s][2]=D2[i][1];
            D3[d3s][3]=D2[i][2];
            D3[d3s][4]=calc_r(D2[i][1],D2[i][2]);
                        printf("%f",D3[d3s][4]);
                        d3s++;
        }
    }
    
}
то на консоль выйдут разные дробные числа, которые мне и нужны( это расстояния от точки до прямой если кому интересно, они должны быть дробными...)
В чем дело не пойму(

Добавлено через 23 минуты
Хочу дополнить, что все это касается только элемента D3[i][4]!!
Остальные столбцы такие, какими и должны быть !

Добавлено через 14 минут
о господи! Тема закрыта!)
Моя невнимательность стоила мне 6-7 часов. Массив Д3 был объявлен как Д3[1000][4] вместо Д3[1000][5].
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.12.2014, 15:51
Ответы с готовыми решениями:

Сколько раз меняет свое место первый по порядку элемент
Массив сортируется методом выбора по возрастанию Кто-нибудь помогите с реализацией кода, а то...

Определить, сколько раз меняет свое место первый по порядку элемент при сортировке выбором
Помогите, очень прошу, вот есть задача: Массив сортируется методом выбора по возрастанию (слева...

Не меняет значение массива в родительском классе
Доброго времени суток! Помогите плиииз, а то бомбит. В общем, есть родительский класс First,...

Переменная не меняет свое значение
Привет. Почему вот в этом варианте, при вызове функции, у меня не изменяется значение переменной?...

1
19409 / 10028 / 2443
Регистрация: 30.01.2014
Сообщений: 17,678
21.12.2014, 16:15 2
Цитата Сообщение от Unheilbar Посмотреть сообщение
Моя невнимательность стоила мне 6-7 часов. Массив Д3 был объявлен как Д3[1000][4] вместо Д3[1000][5].
Вот почему так полезно не использовать магические константы в коде, использовать проверки диапазонов и ассерты. Сбережет кучу времени.
0
21.12.2014, 16:15
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.12.2014, 16:15
Помогаю со студенческими работами здесь

Массив не меняет свое значение и остается нулевым
int inter(double x, double x1, double h, double *c); void main() { double x, x1, k, h; ...

Сколько раз меняет свое место первый по порядку элемент?
Массив сортируется методом выбора по возрастанию (упорядочивание происходит слева направо). Сколько...

Как создать переменную, которая каждую минуту меняет свое значение?
Вопрос в сабже. Нужно чтобы некая переменная A меняла каждую секунду значение в диапазоне 0..1, то...

Массив типа int после инкремента (приращения) другой переменной меняет свое значение .магия
Начну пожалуй с конца. Вся суть находится здесь, я её выделил ShowMessag'ами ... for (i = 0; i &lt;...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru