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

Program crashuje przy sortowaniu

0 głosów
86 wizyt
pytanie zadane 14 grudnia 2017 w C i C++ przez koliber Początkujący (400 p.)

Poniższy kod zdaje się poprawnie sortować (sortowanie shella), bo sprawdzalem coutami, ale z niewiadomych dla mnie przyczyn crashuje się.

 

Oto część kodu, jak trzeba wstawić cały program dajcie znać:

#include <iostream>
#include <cstdlib>   // for srand and rand
#include <ctime>     // for time
#include <math.h>

using namespace std;

int potega(int podst,int pot){
    int wynik = podst;
    for(int i = 1; i < pot; i++){
        wynik = wynik *podst;
    }
    return wynik;
}

void shellON32(int tab[], int n){
    int k = 1;
    int przerwa = 2*(n / potega(2, k+1)) +1;
    cout << "przerwa" << przerwa << endl;
    while(przerwa > 0){

        int j = 0;
        for(int i = przerwa; i < n; i++){
            int temp = tab[i];

            for(j = i; j >= przerwa && tab[j - przerwa] > temp; j = j - przerwa){
                tab[j] = tab[j - przerwa];
            }

            tab[j] = temp;
        }
        k++;
        przerwa = 2*(n / potega(2, k+1)) +1;

    }

}

int main()
{
    //srand(time(0));

    int n = 30;
    int tab[n];
    for(int i = 0; i < n; i++){
        tab[i] = rand() % 100+1;
    }

    for(int i = 0; i < n; i++){
        cout << tab[i] << endl;
    }


    shellON32(tab, n);

    cout << "sortu sortu" << endl;

    for(int i = 0; i < n; i++){
        cout << tab[i] << endl;
    }




    return 0;
}

 

Będę wdzięczny za wskazanie błędu

1 odpowiedź

0 głosów
odpowiedź 14 grudnia 2017 przez k222 Pasjonat (15,440 p.)

Masz 2 razy tę samą linię kodu:

przerwa = 2*(n / potega(2, k+1)) +1;

w 18 i 33 linijce - usuń 1 z nich (pewnie tą drugą) i powinno być ok

Podobne pytania

0 głosów
1 odpowiedź 82 wizyt
pytanie zadane 29 października 2017 w Java przez barteku12 Użytkownik (980 p.)
0 głosów
3 odpowiedzi 213 wizyt
pytanie zadane 2 stycznia 2017 w Algorytmy przez Mikeros Początkujący (320 p.)
0 głosów
1 odpowiedź 249 wizyt
Oferty pracy dla początkujących programistów na portalu No Fluff Jobs
Porady nie od parady
Wynikowy wygląd pytania, odpowiedzi czy komentarza, różni się od tego zaprezentowanego w edytorze postów. Stosuj więc funkcję Podgląd posta znajdującą się pod edytorem, aby upewnić się, czy na pewno ostateczny rezultat ci odpowiada.Podgląd posta

49,741 zapytań

91,700 odpowiedzi

185,223 komentarzy

24,202 pasjonatów

Przeglądających: 241
Pasjonatów: 14 Gości: 227

Motyw:

Akcja Pajacyk

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

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...