BG Development


Страници: (5) « първа ... 3 4 [5]   ( Първото ново мнение ) Reply to this topicStart new topicStart Poll

> Въпрос за свързан списък C++, едносвързан списък C++
saruman
Публикувано на: 10-01-2019, 09:31
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 2139
Регистриран на: 21.07.10



QUOTE (Gamma Goblin @ 10-01-2019, 06:48)

В Индия, вие как си тествате кода ? Белите хора пишат тестове.

Тестове за събиране на две числа,евала машина си icon_lol.gif


--------------------
http://www.wefunkradio.com/radio/

Remember,remember the fifth of November
PMEmail Poster
Top
SuN
Публикувано на: 10-01-2019, 10:00
Quote Post


Group Icon
Име:
Група: Администратор
Ранг: Почетен член

Мнения: 7671
Регистриран на: 27.01.05



QUOTE (m.dimitrov @ 09-01-2019, 18:30)
QUOTE (miron @ 09-01-2019, 18:11)
Събирането още не си го оправил ако получаваш такива резултати. Ама засега пробвай с еднаква дължина.

Самата логика на събирането е вярна. Примерно ако задам за събиране 34+12 резултата е 46, което е правилно. Затруднението ми е при пренасянето на 1 на ум и добавянето на 1 на ум ако последното събиране е по-голямо от 9.

А ако размениш реда на цифрите още ли ти е трудно?

34 +12 става 43 + 21 (4 единици + 3 десетици + 2 единици + 1 десетица).

Знаеш ли как да добавяш елемент в края на списъка?


--------------------
Копирай лесно ударено и - ѝ Ѝ (а́ е́ и́ о́ у́)
PMEmail Poster
Top
Gamma Goblin
Публикувано на: 10-01-2019, 10:11
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 1732
Регистриран на: 21.02.18



QUOTE (saruman @ 10-01-2019, 09:31)
QUOTE (Gamma Goblin @ 10-01-2019, 06:48)

В Индия, вие как си тествате кода ? Белите хора пишат тестове.

Тестове за събиране на две числа,евала машина си icon_lol.gif

Не на числа, а на 2 вектора от цифри. Има разлика. Тестовете ми бяха хванали бъг, който бях допуснал, така че не са излишни.


--------------------
PMEmail PosterUsers Website
Top
m.dimitrov
Публикувано на: 10-01-2019, 17:28
Quote Post



Име: Мартин Димитров
Група: Потребител
Ранг: Новопостъпил

Мнения: 16
Регистриран на: 08.01.19



Успях да оправя алгоритъма да събира две еднакви по дължина числа, но остава проблема със събирането на две различни по дължина.Опитвам се да сравня двете числа и да добавя към по късото нули в началото. Например ако имам числата 5555 и 44, програмата да сравни двете числа и да добави две нули към 44 да стане 0044. Но каквото и да опитвам винаги става 4400.

Ето до къде съм стигнал:

CODE

void Add(int br1, int br2, Point &Head1, Point &Head2){
      Point P, Q;
      if(br1>br2){
            int dif=br1-br2;
            while(dif>0){
            Q = new chislo;
             Q->N = 0;
             Q->next = Head2;
             Head2 = Q;
             dif--;
            }
            if(br1<br2){
            int dif=br2-br1;
            while(dif>0){
            P = new chislo;
             P->N = 0;
             P->next = Head1;
             Head1 = P;
             dif--;
            }
            }
      }
}


Това мнение е било редактирано от m.dimitrov на 10-01-2019, 17:30
PMEmail Poster
Top
miron
Публикувано на: 10-01-2019, 18:46
Quote Post



Име: Мирослав Николов
Група: Потребител
Ранг: Старо куче

Мнения: 625
Регистриран на: 26.04.05



Идеята е че 123 се представя като Head->3->2->1->NULL
Като събираш две числа, ако едното е вече стигнало до NULL ползваш 0 за поредната му цифра.
PM
Top
m.dimitrov
Публикувано на: 10-01-2019, 20:39
Quote Post



Име: Мартин Димитров
Група: Потребител
Ранг: Новопостъпил

Мнения: 16
Регистриран на: 08.01.19



QUOTE (miron @ 10-01-2019, 18:46)
Идеята е че 123 се представя като Head->3->2->1->NULL
Като събираш две числа, ако едното е вече стигнало до NULL ползваш 0 за поредната му цифра.

Да това е и мисълта на фунцкията която съм написал, но за примера който съм дал по-горе 44 програмата връща Head->0->0->4->4->NULL, а аз искам да е Head->4->4->0->0->NULL. Но всичко което опитам връща същата стойност.

Това мнение е било редактирано от m.dimitrov на 10-01-2019, 20:40
PMEmail Poster
Top
miron
Публикувано на: 10-01-2019, 21:22
Quote Post



Име: Мирослав Николов
Група: Потребител
Ранг: Старо куче

Мнения: 625
Регистриран на: 26.04.05



Няма нужда да създаваш нови chislo, просто си оправи сумирането да отчита, че са с различна дължина.
PM
Top
SuN
Публикувано на: 10-01-2019, 22:22
Quote Post


Group Icon
Име:
Група: Администратор
Ранг: Почетен член

Мнения: 7671
Регистриран на: 27.01.05



QUOTE (m.dimitrov @ 10-01-2019, 20:39)
QUOTE (miron @ 10-01-2019, 18:46)
Идеята е че 123 се представя като Head->3->2->1->NULL
Като събираш две числа, ако едното е вече стигнало до NULL ползваш 0 за поредната му цифра.

Да това е и мисълта на фунцкията която съм написал, но за примера който съм дал по-горе 44 програмата връща Head->0->0->4->4->NULL, а аз искам да е Head->4->4->0->0->NULL. Но всичко което опитам връща същата стойност.

Примера ти е лошо подбран. Не става ясно дали сменяш реда на единиците и десетиците в числата или не.

Това мнение е било редактирано от SuN на 10-01-2019, 22:24

Прикачена картинка
Прикачена картинка


--------------------
Копирай лесно ударено и - ѝ Ѝ (а́ е́ и́ о́ у́)
PMEmail Poster
Top
PxL
Публикувано на: 11-01-2019, 19:25
Quote Post


Group Icon
Име: Димитър Т. Димитров
Група: VIP
Ранг: Почетен член

Мнения: 2445
Регистриран на: 26.04.05



user posted image


--------------------
void putchar(char c);int main(){int x,c=1,i;for(i=0;(x="PxLY2H4:2E;7231?=68255A5S5P9N:N9O84111H861I85111G9N:O811O812M<G33911EAEDBECE22169D1=2k"[i+++3]);)while(x-->'0')putchar((!(++c%'('))?0x0a:33^(i&1));}
PMEmail PosterUsers Website
Top
Gamma Goblin
Публикувано на: 11-01-2019, 19:28
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 1732
Регистриран на: 21.02.18





--------------------
PMEmail PosterUsers Website
Top
1 потребители преглеждат тази тема в момента (1 гости, 0 анонимни потребители)
Потребители, преглеждащи темата в момента:

Topic Options Страници: (5) « първа ... 3 4 [5]  Reply to this topicStart new topicStart Poll

 


Copyright © 2003-2019 | BG Development | All Rights Reserved
RSS 2.0