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

Poste sortowanie bąbelkowe - gdzie popełniam błąd?

Object Storage Arubacloud
0 głosów
151 wizyt
pytanie zadane 23 kwietnia 2016 w C i C++ przez Konrad Nabożny Stary wyjadacz (13,460 p.)

Witam, kolejnym ćwiczeniem w książce z której się uczę jest do zrobienia sortowanie bąbelkowe. Problem w tym że jest wytłumaczone jak to zrobić, ale bez konkretnych przykładów, dlatego właśnie jestem w kropce i nie mam pojęcia co zrobiłem źle. 

Podaję swój kod: 

#include <iostream>

using namespace std;

int main()
{
    int ile_elementow;
    int sortujaca1=0;
    int sortujaca2=0;

    cin>>ile_elementow;

    int tab[ile_elementow];

    for (int i=0; i<ile_elementow; i++)
    {
        cin>>tab[i];
    }

    for (int i=1; i<=ile_elementow; i++)
    {
        if (tab[i-1]>tab[i])
        {
            sortujaca1 = tab[i];
            sortujaca2 = tab[i-1];
            tab[i-1] = sortujaca1;
            tab[i] = sortujaca2;
        }
    }

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

    return 0;
}

 

Z góry dziękuję za odpowiedzi i pozdrawiam. 

1 odpowiedź

0 głosów
odpowiedź 23 kwietnia 2016 przez KubenQPL Maniak (62,820 p.)
wybrane 23 kwietnia 2016 przez Konrad Nabożny
 
Najlepsza
Napisz jaki był komunikat błędu.
komentarz 23 kwietnia 2016 przez Konrad Nabożny Stary wyjadacz (13,460 p.)
A, przepraszam zapomniałem o najważniejszym. Program kompiluje się lecz zupełnie nie sortuje liczb, miesza je wręcz :)
komentarz 23 kwietnia 2016 przez KubenQPL Maniak (62,820 p.)
// ConsoleApplication5.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <iostream>

using namespace std;

int main()
{

	int tab[] = { 1,5,8,3,6,8 }; 
	int n = sizeof(tab) / sizeof(int);
	while (n > 1) {
		for (int i = 0; i < n-1; i++) {
			if (tab[i] > tab[i + 1])
				swap(tab[i], tab[i + 1]);
		}
		n--;
	}
	for (int i = 0; i < sizeof(tab) / sizeof(int); i++) {
		cout << tab[i];
	}
		
	system("pause");

    return 0;
}

 

komentarz 23 kwietnia 2016 przez Konrad Nabożny Stary wyjadacz (13,460 p.)
Nie prosiłem o gotowy kod, a o wytłumaczenie mi co jest nie tak w moim własnym :) Poza tym z tego co wiem to dawanie gotowców ma jakiś punkt w nowym regulaminie.

Skoro już udostępniłeś gotowca, to wielkie dzięki za funkcję swap, przyda się w moim przypadku. Czy mógłbyś wytłumaczyć mi również czym jest sizeof?
1
komentarz 23 kwietnia 2016 przez KubenQPL Maniak (62,820 p.)
sizeof zwraca wielkość podanego jako argument elementu, czyli rozmiar tablicy przez rozmiar int co nam daje ilość elementów danej tablicy.

Musisz zrobić tak że po przyrównaniu pierwszego elementu n zmniejszało się o jeden żeby tego elementu już nie sprawdzało ponieważ on już jest największy i potem sprawdzasz reszte znowu zmniejszając n.

Podobne pytania

0 głosów
1 odpowiedź 1,678 wizyt
pytanie zadane 12 listopada 2015 w C i C++ przez Plessio Obywatel (1,090 p.)
0 głosów
2 odpowiedzi 612 wizyt
pytanie zadane 23 lutego 2016 w C i C++ przez Ziuziek Mądrala (5,140 p.)
0 głosów
1 odpowiedź 377 wizyt
pytanie zadane 10 listopada 2015 w C i C++ przez L1sterin Nowicjusz (150 p.)

92,579 zapytań

141,429 odpowiedzi

319,657 komentarzy

61,962 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

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

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!

...