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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
Sеrgo12345
0 / 0 / 0
Регистрация: 29.07.2013
Сообщений: 5
#1

Вместо результата выводит непонятное число - C++

29.07.2013, 20:19. Просмотров 1572. Ответов 18
Метки нет (Все метки)

Сделал программу которая должна высчитывать по формуле, но она высчитывает не совсем то число.
C++
1
2
3
4
5
6
7
8
9
10
11
12
                 int chislo = Convert::ToInt32(textBox2->Text);
                 int *chisla = new int[chislo];
                 int lolx = Convert::ToInt32(textBox1->Text);
                 int rezultat;
                 int rexa;
                 for(int i = lolx; i < chislo; i++)
                 {
                        chisla[i] += (Convert::ToInt32(textBox1->Text)+i)*4;
                        rezultat += chisla[i];
                 }
                 rexa = Convert::ToInt32(rezultat);
                 Relox->Text += rezultat;
Например в 1 поле я ввожу цифру один, а во второе поле цифру три, то он в третьем поле должен выдать результат 36, а выводит огромное число.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.07.2013, 20:19
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вместо результата выводит непонятное число (C++):

Вместо нуля выводит непонятное число - C++
Вот пожалуйста кусок кода, считающий неувязку после решения СЛАУ: int n=5; double **a, *b, *x, r, c, s, q; int i,...

Выводит непонятное число - C++
При выполнение программы всегда выводится на экран число 2686744. Как это исправить? Работаю в среде Dev Cpp. #include&lt;stdlib.h&gt; ...

выводит между результатом непонятное число - C++
нужно вывести: 1й столбец сверху вниз, 2й столбец снизу вверх и т.д. если ввожу матрицу 1 2 3 4 5 6 7 8 9, то результат выдает:...

Программа выводит что-то непонятное - C++
Помогите пожалуйста, подскажите, почему программа бред выводит? Вот программа. #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include...

Выдает непонятное число!С++ - C++
//В массив A занесены натуральные числа. Найти сумму тех //элементов, которые кратны данному К. #include &lt;iostream.h&gt; #include...

Выводит INF вместо значения - C++
Не ругайте за стиль , только учусь. проблема с выводом значения X строка 63,68. Вроде 97/97 должно быть 1, он даёт INF // решение систем...

18
stragger
39 / 39 / 2
Регистрация: 05.12.2011
Сообщений: 343
29.07.2013, 20:25 #2
Последняя строка, Relox->Text имеет тип System::String, а rezultat - тип int. Приведи rezultat к System::String.
1
Sеrgo12345
0 / 0 / 0
Регистрация: 29.07.2013
Сообщений: 5
29.07.2013, 20:27  [ТС] #3
Цитата Сообщение от stragger Посмотреть сообщение
Последняя строка, Relox->Text имеет тип System::String, а rezultat - тип int. Приведи rezultat к System::String.
Пробывал, уже и то и другое и в Int и в String переводил.
0
stragger
39 / 39 / 2
Регистрация: 05.12.2011
Сообщений: 343
29.07.2013, 20:30 #4
эм.. точно?
Может как-то не так приводил? Должно быть как-то так:
Relox->Text += Convert::ToString(rezultat);

PS:
rexa = Convert::ToInt32(rezultat);
какая-то странная строка int к int приводится.

И наверное стоит инициализировать rezultat = 0, при объявлении.
1
alsav22
5421 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
29.07.2013, 20:34 #5
Вот это:
Цитата Сообщение от stragger Посмотреть сообщение
И наверное стоит инициализировать rezultat = 0, при объявлении.
1
stragger
39 / 39 / 2
Регистрация: 05.12.2011
Сообщений: 343
29.07.2013, 20:44 #6
alsav22, я тут специально проверил, компилятор VS 2008, и скорее всего все остальные из линейки Microsoft, инициализирует int нулем, если это не сделано явно, так что скорее всего проблема не в этом.
0
Sеrgo12345
0 / 0 / 0
Регистрация: 29.07.2013
Сообщений: 5
29.07.2013, 20:47  [ТС] #7
Испробовал все выше предложенные варианты, всёравно выводи огромное число.
0
alsav22
5421 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
29.07.2013, 20:47 #8
Не так. 2010 студия не инициализирует.
0
stragger
39 / 39 / 2
Регистрация: 05.12.2011
Сообщений: 343
29.07.2013, 20:50 #9
alsav22, хм.. буду знать.
Sеrgo12345, инициализируй все объявленные переменные, в том числе и массив int *chisla;
0
alsav22
5421 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
29.07.2013, 20:50 #10
Это в release.
1
Миниатюры
Вместо результата выводит непонятное число  
alsav22
5421 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
29.07.2013, 20:52 #11
Это в debug, с предупреждениями. Вот mingw инициализирует.
0
Миниатюры
Вместо результата выводит непонятное число  
stragger
39 / 39 / 2
Регистрация: 05.12.2011
Сообщений: 343
29.07.2013, 20:56 #12
alsav22, я проверял в Managed версии компилятора, в этом случае похоже используется именно эта версия, т.к. используется WinForms.

Как я понял в Managed C++:
Переменные в стеке инициализируются нулем, а если в куче такого не происходит и там мусор.
0
Sеrgo12345
0 / 0 / 0
Регистрация: 29.07.2013
Сообщений: 5
29.07.2013, 20:58  [ТС] #13
Инициализировал, бесполезно.
Вот код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
                 int chislo = 0;
                 chislo = Convert::ToInt32(textBox2->Text);
                 int *chisla = 0;
                 chisla = new int[chislo];
                 int rezultat = 0;
                 int lolx = 0;
                 lolx = Convert::ToInt32(textBox1->Text);
                 for(int i = lolx; i < chislo; i++)
                 {
                        chisla[i] += (Convert::ToInt32(textBox1->Text)+i)*4;
                        rezultat += chisla[i];
                 }
                 Relox->Text += Convert::ToString(rezultat);
0
alsav22
5421 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
29.07.2013, 20:59 #14
Цитата Сообщение от stragger Посмотреть сообщение
Как я понял в Managed C++:
Переменные в стеке инициализируются нулем, а если в куче такого не происходит и там мусор.
Насчёт этого не знаю, с формами не знаком. ТС может отладчиком посмотреть, что-где не так?
0
stragger
39 / 39 / 2
Регистрация: 05.12.2011
Сообщений: 343
29.07.2013, 20:59 #15
Sеrgo12345, массив тоже
C
1
2
for(int i = 0; i < chislo; i++)
  chisla[i] = 0;
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.07.2013, 20:59
Привет! Вот еще темы с ответами:

Выводит -1.#IND вместо значения переменной - C++
Здравствуйте, очень долго бьюсь с проблемой. заключается она в следующем. Есть ряд Тейлора для sin(x)/x который равен(сразу распишу) sum...

Выводит вместо массива мягко сказать хрень - C++
#include &lt;stdio.h&gt; #include&lt;conio.h&gt; #include &lt;stdlib.h&gt; #include &lt;math.h&gt; #include &lt;iostream&gt; using namespace std; void main()...

Программа вместо списка выводит несколько семерок - C++
Вот создаю программу со списками, и почему то когда вывожу на экран её она висит и выводит много семерок вот код может у вас получится...

Вместо массива выводит большие отрицательные чсила - C++
Доброго времени суток! Создан массив в классе (вроде все верно) вот только выводит не тот массив который требуется: #include...


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

Или воспользуйтесь поиском по форуму:
15
Yandex
Объявления
29.07.2013, 20:59
Ответ Создать тему
Опции темы

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