Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > .NET для новичков > Работа с массивом


Автор: Суровый 21.2.2010, 18:37
Здравствуйте!
Пишу на C++ .NET, (Windows Forms) столкнулся с невообразимой проблемой.
Сразу код:
Код

float seval(int n, float u, array<float>^ yzli,array<float>^ y,array<float>^ b,array<float>^ c, array<float>^ d)
{
       //разный код, не важно какой
       if(u < yzli[k-1])
         j=k;
       if(u >= yzli[k-1])
         a=k;
       //опять код, не важно
}

Находясь на строчке 
if(u < yzli[k-1])
(т.е. она не выполнена в этот момент) я смотрю значение k, всего массива yzli и то значение yzli[k-1], которое мне показывает среда.
Результат - http://s59.radikal.ru/i166/1002/96/c7e380c9b997.png
Как Вы видите, значение k = 4, соответственно yzli[k-1] должно быть эквивалентно yzli[3]. Смотрим значение yzli[3], оно равно -0.2. Смотрим что определила среда: -1.
Я не понимаю.
Естественно, компилятор не может ошибаться, это я где-то накосячил. Но я не понимаю в чем дело..
Объясните, пожалуйста..
Заранее благодарен!

Автор: KuMa1104 21.2.2010, 19:38
Эм  с++ не использую так что точно сказать не могу.
 но попробуйте изменить значение элемента с 0 номером мне кажется он вам просто ссылку на первый эл отображает. 

Автор: Суровый 21.2.2010, 20:17
Да, так и оказалось.
Но почему так происходит? Мне то нужно работать со всеми значениями массива, а не только с нулевым.

Автор: KuMa1104 21.2.2010, 20:20
Ам а что в итоге то в вашем коде он не подставляет в if соответствующее значение?

Автор: Суровый 21.2.2010, 20:36
Обнаружил, что значения он подставляет все-таки правильно, просто не на тех данных тестировал...
В итоге получается, что среда "глючит", выводит на обозрения не те значения.. Вот и не знай теперь кому верить.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)