Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/56: Рейтинг темы: голосов - 56, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 29.07.2013
Сообщений: 5

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

29.07.2013, 20:19. Показов 11241. Ответов 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
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.07.2013, 20:19
Ответы с готовыми решениями:

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

Printf выводит непонятное число вместо требуемого
Здравствуйте. Совсем недавно начал изучать С++, и натолкнулся на такую проблему, нигде не могу найти что-либо похожее: #include...

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

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

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

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

Как я понял в Managed C++:
Переменные в стеке инициализируются нулем, а если в куче такого не происходит и там мусор.
0
0 / 0 / 0
Регистрация: 29.07.2013
Сообщений: 5
29.07.2013, 20:58  [ТС]
Инициализировал, бесполезно.
Вот код
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
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
29.07.2013, 20:59
Цитата Сообщение от stragger Посмотреть сообщение
Как я понял в Managed C++:
Переменные в стеке инициализируются нулем, а если в куче такого не происходит и там мусор.
Насчёт этого не знаю, с формами не знаком. ТС может отладчиком посмотреть, что-где не так?
0
40 / 40 / 5
Регистрация: 05.12.2011
Сообщений: 343
29.07.2013, 20:59
Sеrgo12345, массив тоже
C
1
2
for(int i = 0; i < chislo; i++)
  chisla[i] = 0;
1
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
29.07.2013, 21:00
Цитата Сообщение от Sеrgo12345 Посмотреть сообщение
chisla = new int[chislo];
Та же история, массив неинициализирован.
0
0 / 0 / 0
Регистрация: 29.07.2013
Сообщений: 5
29.07.2013, 21:02  [ТС]
Цитата Сообщение от alsav22 Посмотреть сообщение
Та же история, массив неинициализирован.
Wow спасибо. Теперь всё работает.
0
40 / 40 / 5
Регистрация: 05.12.2011
Сообщений: 343
29.07.2013, 21:03
alsav22, ну да, так, если интересно вот скрин в debug
Миниатюры
Вместо результата выводит непонятное число  
0
40 / 40 / 5
Регистрация: 05.12.2011
Сообщений: 343
29.07.2013, 21:04
Хотя мораль конечно, всегда и всё инициализировать и не смотреть на компилятор.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.07.2013, 21:04
Помогаю со студенческими работами здесь

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

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

Программа не выводит результата
Возможно неправильно вынес данные в подпрограмму (foo1) ,кто в силах исправить ? #include &lt;iostream&gt; #include &lt;cmath&gt;...

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

Сортировка массива в виде функций. Не выводит результата
#include &lt;iostream&gt; #include &lt;cstdlib&gt; using namespace std; void Scan(){ int i,n; int a; cin&gt;&gt;n; for(i=0;i&lt;n;i++) { ...


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru