• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

zadanko 2913 z leetcode przepełnienie zmiennej int

Object Storage Arubacloud
0 głosów
80 wizyt
pytanie zadane 15 grudnia 2023 w C i C++ przez MARECKIyt Nowicjusz (190 p.)

zrobiłem prawię wszystko ale mam 1 błąd którego nie potrafię naprawić

w tym kodzie z nie zrozumiałych dla mnie przyczyn jakaś zmienna się przepełnia która liczy ile jest różnych elementów w pod tablicy się przepełnia

class Solution {
public:
    int sumCounts(vector<int>& nums)
    {
        int i, j, k, o, a, sum, d;
        int l = nums.size();

        for (i=1; i++; i<=l)
        {
            for(j=0; j++; j+i<l)
            {
                int sub[i];
                for (k=j; k++; k<j+i)
                {
                    sub[k-j] = nums[k];
                }

                for (k=0; k++; k<i)
                {
                    a = sub[k];
                    d=0;
                    for (o=k; o--; o>=0)
                    {
                        if (a==sub[o])
                        {
                            break;
                        }

                        if (o==0)
                        {
                           d++; 
                        }
                    }
                }
                sum += d * d;
            }
        }
        return sum;
    }
};

i pokazuje mi taki błąd

Line 8: Char 20: runtime error: signed integer overflow: 2147483647 + 1 cannot be represented in type 'int' (solution.cpp) SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior prog_joined.cpp:17:20

1 odpowiedź

+2 głosów
odpowiedź 15 grudnia 2023 przez toko Dyskutant (7,670 p.)
wybrane 15 grudnia 2023 przez MARECKIyt
 
Najlepsza

Pętle pisze się tak:

for([inicjalizacja zmiennej/ych]; [warunek]; [coś do zrobienia ze zmienną, np. inkrementacja])
    [instrukcja]
// przykład:
for(int i = 0; i < 123; i++)
    cout << "blabla" << i << endl;

Natomiast twoje pętle wyglądają tak:

for([inicjalizacja zmiennej/ych]; [coś do zrobienia ze zmienną]; [warunek])
    [instrukcja]

To jest w tym przypadku poprawne pod względem poprawności składni języka, ponieważ twoje [coś do zrobienia ze zmienną] zwraca wartość konwertowalną na bool, ale oczywiście to nie działa. Z tego powodu tworzy się nieskończona pętla i i w końcu się przepełnia.

Podobne pytania

0 głosów
5 odpowiedzi 305 wizyt
pytanie zadane 4 grudnia 2015 w C i C++ przez C☺ndzi Stary wyjadacz (12,100 p.)
0 głosów
1 odpowiedź 242 wizyt
pytanie zadane 28 października 2018 w C i C++ przez kamasazi98 Początkujący (410 p.)
0 głosów
0 odpowiedzi 142 wizyt
pytanie zadane 24 września 2022 w Systemy operacyjne, programy przez Patrykosik88 Początkujący (340 p.)

92,676 zapytań

141,579 odpowiedzi

320,058 komentarzy

62,039 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...