Instrukcje warunkowe, iteracje, tablice

0
  1. Zadeklarować i wypełnić, korzystajac z literału tablciowego, tablice rozmiaru n liczbami z zakresu od 0 do 99.

2.Program przeglada wszystkie sasiednie elementy tablicy i jesli wartosc i-tej pozycji jest wieksza od wartosci (i+1) pozycji to zamienia te wartosci miejscami.

w zalaczniku poczatek kodu, jest cokolwiek dobrze czy zle zaczalem?

#include <iostream>

using namespace std;

int main()
{
    int i, buf;
    int tab[7]={13,3,1,56,67,78,90};
        for(int i = 0;i<7;i++)
        cout << tab[i]<<endl;

    if( tab[i] > tab[i+1] ) 
    {

    buf=tab[i+1];
    tab[i+1]=tab[i];
    tab[i]=buf;  
    }
    return 0;
}
3
  1. Tak, sama zamiana jest ok, jedna rzecz do poprawy, to jeżeli masz n elementów to pętla for musi być do i<n-1, bo tam masz tab[i+1] i ci się wywali bo wyjdzie poza zakres tablicy.
  2. No i punkt pierwszy do realizacji bo ty masz na stałe wpisane 7, można by to uogólnić.
    P.S.: Takie sortowanie nosi nazwę sortowania bąbelkowego.
    P.S.2: To jest tylko częściowe uporządkowanie a nie sortowanie babelkowe.
    P.S.3: Doczytałam co to literał tablicowy, czyli masz podać wartości z ręki, tak jak podałeś.
0

Czyli tablica ma być rozmiaru n i już? Nie moge na wstepie wybrać sobie np n=7 tak jak zrobilem i wypisac jakies losowe liczby z tego przedzialu <0;99>?

No tak, ale nawet bez uogólniania to moje tab[1]=13 i jest wieksze od tab[2]=1, a jednak zamiana kolejnosci nie wystepuje podczas wyswietlania...

Przepraszam, ze o takie banały pytam, ale jestem naprawde raczkujacym "programista" :P

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0