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

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

Войти
Регистрация
Восстановить пароль
 
Dimka-novitsek
14 / 14 / 0
Регистрация: 26.04.2012
Сообщений: 1,091
#1

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

26.06.2014, 12:59. Просмотров 334. Ответов 10
Метки нет (Все метки)

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 никакие значения не поступаю. Подскажите как правильно!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.06.2014, 12:59
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Массивы - отладить код; В переменную Summa никакие значения не записываются (C++):

В выходной фаил записываются вместе с ответом записываются каракули. Помогите исправить ошибку - C++
#include &lt;iostream&gt; using namespace std; void funk (int n, int k) { freopen(&quot;input.txt&quot;, &quot;rt&quot;, stdin); ...

Не работает код отрисовки изображения при подстановке значения через переменную - PHP
Здравствуйте. Подскажите кто знает, почему код (привожу только начало кода) $side = imagecreate(279, 39); ...

В БД не записываются значения - Программирование Android
Этот сервис обрабатывает поступившее сообщение. sms_body_name и sms_body_text имеют нужные значения (строка 65 и 66), а вот в БД вообще...

Не записываются значения в форму - JavaScript
Добрый день! Последовательность действий такая : запрашиваю json файл и распарсиваю его, далее эти значения кладу в форму coeff через цикл....

Значения не записываются в массив - C#
private void Play(double PSignal, string fileName) { byte resultbytes = new byte; BinaryReader br =...

В массив не записываются значения - C (СИ)
В массив не записываются значения :( Заранее спасибо за помощь #include &quot;stdafx.h&quot; #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; ...

10
dzrkot
zzzZZZ...
523 / 353 / 54
Регистрация: 11.09.2013
Сообщений: 2,025
26.06.2014, 13:08 #2
напишите задачу, проще решить заного чем разбираться в ЭТОМ
1
BatonPro
30 / 30 / 24
Регистрация: 21.06.2014
Сообщений: 81
26.06.2014, 13:34 #3
Жесть какая, даже goto есть
1
zss
Модератор
Эксперт С++
6536 / 6098 / 2008
Регистрация: 18.12.2011
Сообщений: 15,864
Завершенные тесты: 1
26.06.2014, 14:36 #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;
 
}
1
gru74ik
Эксперт CЭксперт С++
4197 / 1845 / 198
Регистрация: 20.02.2013
Сообщений: 4,991
Записей в блоге: 22
26.06.2014, 14:44 #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();
 }
1
0x10
26.06.2014, 15:08
  #6

Не по теме:

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

0
gru74ik
Эксперт CЭксперт С++
4197 / 1845 / 198
Регистрация: 20.02.2013
Сообщений: 4,991
Записей в блоге: 22
26.06.2014, 15:26 #7
Цитата Сообщение от 0x10 Посмотреть сообщение
Отлично)
patzan-style coding

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

C++
1
goto Idi_suda_na;
1
Dimka-novitsek
14 / 14 / 0
Регистрация: 26.04.2012
Сообщений: 1,091
26.06.2014, 20:59  [ТС] #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 передаётся?
0
zss
Модератор
Эксперт С++
6536 / 6098 / 2008
Регистрация: 18.12.2011
Сообщений: 15,864
Завершенные тесты: 1
26.06.2014, 21:05 #9
Почему Вы не учли ошибки, которые я в коде специально выделил комментарием?
1
gru74ik
Эксперт CЭксперт С++
4197 / 1845 / 198
Регистрация: 20.02.2013
Сообщений: 4,991
Записей в блоге: 22
26.06.2014, 21:12 #10
Цитата Сообщение от Dimka-novitsek Посмотреть сообщение
У нас, в summ попадают самые нилепые числа вроде 3435973836 .
Это у Вас они туда попадают. У меня в сообщении Ваш же код, только переписанный в удобочитаемом виде.

И да, не мучайте себя и других, последуйте хорошему совету:
Цитата Сообщение от dzrkot Посмотреть сообщение
напишите задачу, проще решить заново чем разбираться в ЭТОМ
0
Dimka-novitsek
14 / 14 / 0
Регистрация: 26.04.2012
Сообщений: 1,091
26.06.2014, 21:17  [ТС] #11
Да! Я баран, этого и не увидел. Спасибо!!
0
26.06.2014, 21:17
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.06.2014, 21:17
Привет! Вот еще темы с ответами:

В массив не правильно записываются значения - Turbo Pascal
Такая задача: Из массивов А и В сформировать массив С, записав в него элементы массивов А и В с четными индексами Вот как я пытался...

Записываются не те значения что ввожу... - PHP
Здравствуйте.Вроде все работало, но в очередной запуск формы начали принимать значения одни а в базе записываются другие не могу что не так...

Неправильно записываются значения в память функцией ptrace() - C++ Linux
Я под линукс писать только учусь, поэтому пишу, можно сказать, все, что под руку попадется, вот и взялся читер для игрушек писать по типу...

Отладить код - Pascal
Есть программа в которой нужно прочесть строку, посчитать количество повторений каждого символа, найти его код. Найти сумму кодов всех...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

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