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

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

Восстановить пароль Регистрация
 
Dimka-novitsek
14 / 14 / 0
Регистрация: 26.04.2012
Сообщений: 1,091
26.06.2014, 12:59     Массивы - отладить код; В переменную Summa никакие значения не записываются #1
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include<conio.h>
#include <cmath>
#include<iostream>
#include <stdio.h>
 
 
using std::cout;
using std::cin;
using std::endl;
 
 
void main()
 {
         cout << "Input n,m: ";
         int n,m,n1;      int MassVseTsisla[100]; int VseTsisla; VseTsisla=0;
   cin >> n >> m; cin.get();
   n1=n;
    int Massiv[100];int Stsotsik;  Stsotsik=0;
 
   Idisuda: for (;  n!=0||n>0;  Stsotsik++)
        {Massiv[Stsotsik] = n%10; n/=10;}
      int Summa; Summa=0;
      for (Stsotsik;  Stsotsik!=0||Stsotsik>0;  Stsotsik--) 
          {Summa=Summa+Massiv[Stsotsik];}
   Summa=Summa*Summa;
        if ( Summa==m ) {MassVseTsisla[VseTsisla]=n1;n=n1-VseTsisla;
                     VseTsisla++;
                     if (n>0)goto Idisuda;}
 
    for (VseTsisla;VseTsisla>=0;VseTsisla--){cout<< VseTsisla << "Znatsenie" <<MassVseTsisla[VseTsisla]<< endl;}
    cin.get();
 
 }
Значения просто тиряются где-то в массивах... Нужно или по другому переписать, или дополнить и понять где же они теряются! Или я извлеч из массива их не умею..

Добавлено через 17 часов 36 минут
В переменную Summa никакие значения не поступаю. Подскажите как правильно!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.06.2014, 12:59     Массивы - отладить код; В переменную Summa никакие значения не записываются
Посмотрите здесь:

C++ Реализовать метод summa () для вычисление денежной суммы.
C++ Компилятор оптимизировал мой код, и я не могу его отладить
В выходной фаил записываются вместе с ответом записываются каракули. Помогите исправить ошибку C++
пожалуйста отладить код нахождения минимального и максимального элемента в линейном массиве из 15 элементов C++
Подскажите как отладить код (связанные списки) C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dzrkot
zzzZZZ...
 Аватар для dzrkot
516 / 346 / 53
Регистрация: 11.09.2013
Сообщений: 1,977
26.06.2014, 13:08     Массивы - отладить код; В переменную Summa никакие значения не записываются #2
напишите задачу, проще решить заного чем разбираться в ЭТОМ
BatonPro
30 / 30 / 24
Регистрация: 21.06.2014
Сообщений: 81
26.06.2014, 13:34     Массивы - отладить код; В переменную Summa никакие значения не записываются #3
Жесть какая, даже goto есть
zss
Модератор
Эксперт С++
 Аватар для zss
5948 / 5553 / 1785
Регистрация: 18.12.2011
Сообщений: 14,191
Завершенные тесты: 1
26.06.2014, 14:36     Массивы - отладить код; В переменную Summa никакие значения не записываются #4
Цитата Сообщение от Dimka-novitsek Посмотреть сообщение
n!=0||n>0
При n>0 верно и n!=0. С-но ||n>0 можно опустить.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
int main()
{
    int n,m,n1;
    int MassVseTsisla[100]={0}; 
    int VseTsisla; VseTsisla=0;
    cout << "Input n,m: ";
    cin >> n >> m; cin.get();
    n1=n;
    int Massiv[100];int Stsotsik;  Stsotsik=0;
 
Idisuda: 
    for (;n!=0;  Stsotsik++)
    {
        Massiv[Stsotsik] = n%10; 
        n/=10;
    }
    Stsotsik--;   // тут значение Stsotsik оказалось на 1 больше
    int Summa; Summa=0;
    for(;Stsotsik>=0;Stsotsik--) 
        Summa+=Massiv[Stsotsik];
    Summa*=Summa;
    if ( Summa==m ) 
    {
        MassVseTsisla[VseTsisla]=n1;
        n=n1-VseTsisla;
        VseTsisla++;
        if (n>0)
        {
            Stsotsik=VseTsisla; // тут значение Stsotsik равно -1. Какое должно быть, знаете только Вы
            goto Idisuda;
        }
    }
    for(;VseTsisla>=0;VseTsisla--)
        cout<< VseTsisla << " Znatsenie " <<MassVseTsisla[VseTsisla]<< endl;
    system("pause");
    return 0;
 
}
gru74ik
Модератор
 Аватар для gru74ik
3120 / 1346 / 167
Регистрация: 20.02.2013
Сообщений: 3,849
Записей в блоге: 17
26.06.2014, 14:44     Массивы - отладить код; В переменную Summa никакие значения не записываются #5
Оформлено жестоко, конечно. Лучше так оформляй в следующий раз:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include <conio.h>
#include <cmath>
#include <iostream>
#include <stdio.h>
 
 
using std::cout;
using std::cin;
using std::endl;
 
 
void main()
{   
    int n, m, n1;
    cout << "Input n, m: ";
    cin >> n >> m;
    cin.get();
    int arrAllNumbers[100]; // массив всех чисел
    int allNumbers = 0;
    n1 = n;
    int arr[100];
    int counter = 0;
    oneMoreTime:
    
    for (; n != 0 || n > 0; counter++)
    {
        arr[counter] = n%10;
        n /= 10;        
    }
 
    int summ = 0;
      
    for (counter; counter != 0 || counter > 0; counter--) 
        summ = summ + arr[counter];
        
    summ = summ * summ;
    
    if (summ == m)
    {
        arrAllNumbers[allNumbers] = n1;
        n = n1 - allNumbers;
        allNumbers++;
            if (n > 0)
                goto oneMoreTime;
    }
 
    for (allNumbers; allNumbers >= 0; allNumbers--)
        cout<< allNumbers << " value " << arrAllNumbers[allNumbers] << endl;
    
    cin.get();
 }
0x10
26.06.2014, 15:08
  #6

Не по теме:

Цитата Сообщение от Dimka-novitsek Посмотреть сообщение
goto Idisuda
Отлично)

gru74ik
Модератор
 Аватар для gru74ik
3120 / 1346 / 167
Регистрация: 20.02.2013
Сообщений: 3,849
Записей в блоге: 17
26.06.2014, 15:26     Массивы - отладить код; В переменную Summa никакие значения не записываются #7
Цитата Сообщение от 0x10 Посмотреть сообщение
Отлично)
patzan-style coding

Добавлено через 2 минуты
Цитата Сообщение от Dimka-novitsek Посмотреть сообщение
goto Idisuda;
Надо было так:

C++
1
goto Idi_suda_na;
Dimka-novitsek
14 / 14 / 0
Регистрация: 26.04.2012
Сообщений: 1,091
26.06.2014, 20:59  [ТС]     Массивы - отладить код; В переменную Summa никакие значения не записываются #8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include <conio.h>
#include <cmath>
#include <iostream>
#include <stdio.h>
 
 
using std::cout;
using std::cin;
using std::endl;
 
 
void main()
{   
    int n, m, n1;
    cout << "Input n, m: ";
    cin >> n >> m;
    cin.get();
    int arrAllNumbers[100]; // массив всех чисел
    int allNumbers = 0;
    n1 = n;
    int arr[100];
    int counter = 0;
    oneMoreTime:
    
    for (; n != 0 || n > 0; counter++)
    {
        arr[counter] = n%10;
        n /= 10;        
    }
 
    int summ = 0;
      
    for (counter;  counter >= 0; counter--) 
    {summ = summ + arr[counter];   cout <<counter<< summ << arr[counter] << endl;}
        
    summ = summ * summ;
    
    if (summ == m)
    {
        arrAllNumbers[allNumbers] = n1;
        n = n1 - allNumbers;
        allNumbers++;
            if (n > 0)
                goto oneMoreTime;
    }
 
    for (allNumbers; allNumbers >= 0; allNumbers--)
        cout<< allNumbers << " value " << arrAllNumbers[allNumbers] << endl;
    
    cin.get();
 }
У нас, в summ попадают самые нилепые числа вроде 3435973836 . Кажется это элементы массива содержат тоже всякую бяку- да я проверю еще вот таким кодом (выше) Ого, отрицатильные числа..
.. Не понял!! И пишется как-то не так

Не понял. summ = summ + arr[counter]; Я же так могу получить сумму всех элементов массива? Он же внутрь for передаётся?
zss
Модератор
Эксперт С++
 Аватар для zss
5948 / 5553 / 1785
Регистрация: 18.12.2011
Сообщений: 14,191
Завершенные тесты: 1
26.06.2014, 21:05     Массивы - отладить код; В переменную Summa никакие значения не записываются #9
Почему Вы не учли ошибки, которые я в коде специально выделил комментарием?
gru74ik
Модератор
 Аватар для gru74ik
3120 / 1346 / 167
Регистрация: 20.02.2013
Сообщений: 3,849
Записей в блоге: 17
26.06.2014, 21:12     Массивы - отладить код; В переменную Summa никакие значения не записываются #10
Цитата Сообщение от Dimka-novitsek Посмотреть сообщение
У нас, в summ попадают самые нилепые числа вроде 3435973836 .
Это у Вас они туда попадают. У меня в сообщении Ваш же код, только переписанный в удобочитаемом виде.

И да, не мучайте себя и других, последуйте хорошему совету:
Цитата Сообщение от dzrkot Посмотреть сообщение
напишите задачу, проще решить заново чем разбираться в ЭТОМ
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.06.2014, 21:17     Массивы - отладить код; В переменную Summa никакие значения не записываются
Еще ссылки по теме:

Как записать в переменную значения других переменных? C++
C++ Реализовать метод summa () для вычисление денежной суммы
Рекурсия, нужно отладить код C++

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

Или воспользуйтесь поиском по форуму:
Dimka-novitsek
14 / 14 / 0
Регистрация: 26.04.2012
Сообщений: 1,091
26.06.2014, 21:17  [ТС]     Массивы - отладить код; В переменную Summa никакие значения не записываются #11
Да! Я баран, этого и не увидел. Спасибо!!
Yandex
Объявления
26.06.2014, 21:17     Массивы - отладить код; В переменную Summa никакие значения не записываются
Ответ Создать тему
Опции темы

Текущее время: 17:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru