[C++] Wyświetlanie tabeli

koralina19
Użytkownik
Użytkownik
Posty: 48
Rejestracja: 6 gru 2015, o 00:59
Płeć: Kobieta
Lokalizacja: Warszawa
Podziękował: 1 raz

[C++] Wyświetlanie tabeli

Post autor: koralina19 »

Cześć czy ktoś mógłby rzucić okiem na ten program, nie wiem czemu nie chce wyświetlić się tabela

Kod: Zaznacz cały

#include <iostream>
#include <cstdlib>
#include <ctime>

using namespace std;

int main() {
    int tab[6][6];
    int suma_obw = 0;
    int suma_pr1 = 0;
    int suma_pr2 = 0;
    srand (time(NULL));
    cout << "Wylosowana tabela:" <<endl;
    for(int i=0; i<6; i++)
        {for(int j=0; j<6; j++) {
            tab[i][j] = rand() %9 + 1;
            cout << tab[i][j] << " ";
            if(j==0 || i==0 || j==5 || i ==5)
                {suma_obw += tab[i][j];}
            else if(j==i)
                {suma_pr1 += tab[i][j];}
            else if(j+i == 5)
                {suma_pr2 += tab[i][j];
        }
       
        cout<< endl;}
    }
    cout << endl;
    cout << "suma po obwodzie: " << suma_obw << endl;
    cout << "suma przekatnej czerwonej: " << suma_pr1 << endl;
    cout << "suma przekatnej zoltej: " << suma_pr2 << endl;

    return 0;
}
Ostatnio zmieniony 21 gru 2015, o 20:28 przez Afish, łącznie zmieniany 1 raz.
Powód: Stosuj tagi.
Awatar użytkownika
jarzabek89
Użytkownik
Użytkownik
Posty: 1337
Rejestracja: 11 lis 2007, o 21:36
Płeć: Mężczyzna
Lokalizacja: Gdańsk
Podziękował: 4 razy
Pomógł: 181 razy

[C++] Wyświetlanie tabeli

Post autor: jarzabek89 »

Nie w tym miejscu dajesz

Kod: Zaznacz cały

 cout<<endl;
Masz zły nawyk pisania nawiasów.
Ukryta treść:    
koralina19
Użytkownik
Użytkownik
Posty: 48
Rejestracja: 6 gru 2015, o 00:59
Płeć: Kobieta
Lokalizacja: Warszawa
Podziękował: 1 raz

[C++] Wyświetlanie tabeli

Post autor: koralina19 »

Dziękuję. A czy wiesz może jeszcze dlaczego ten program mi nie działa ? On ma wylosować 15 liczb, a następnie posortować bąbelkowo

Kod: Zaznacz cały

#include<iostream>
#include<conio.h>
#include<time.h>
#include<cstdlib>
using namespace std;

int sortowanie(int tablica[x]; int i; int j; int x)
{
int tab[x];

    for (int i=0; i<=x; i++)
        for (int j=0; j<=x; j++)
            if (tablica[j]>tablica[j+1])
                swap(tablica[j], tablica[j+1]);

    for (int i = 0; i<=x; i++)
        cout << tablica[i] << " ";

    system("PAUSE >nul");
    return 0;
}
int main()
{
    int tab[n];
    int n=15;
   srand(time(NULL));
   cout<<"przed posortowaniem"<<endl;
    for(int i=0;i<=n;i++)
    {
        tab[i]=rand()%10+10;
        cout<<i<<"  ";
    }
    cout<<"po posortowaniu"<<endl;
    cout<<sortowanie(n);
    return 0;

}
Ostatnio zmieniony 22 gru 2015, o 06:55 przez Afish, łącznie zmieniany 1 raz.
Powód: Brak tagów code.
Awatar użytkownika
jarzabek89
Użytkownik
Użytkownik
Posty: 1337
Rejestracja: 11 lis 2007, o 21:36
Płeć: Mężczyzna
Lokalizacja: Gdańsk
Podziękował: 4 razy
Pomógł: 181 razy

[C++] Wyświetlanie tabeli

Post autor: jarzabek89 »

Kod: Zaznacz cały

int tab[n];
int n=15;
Skąd nasz programik ma wiedzieć czym jest n, skoro n definiujesz w kolejnej linijce.
Nawet gdyby było odwrotnie

Kod: Zaznacz cały

int n=15;
int tab[n];
to też by było źle. Wymiar tablicy statycznej musi być znany w momencie uruchomienia programu.
Należało by napisać:

Kod: Zaznacz cały

const int n=15;
int tab[n];
Następnie:

Kod: Zaznacz cały

cout<<sortowanie(n);
funkcja sortowanie zwraca

Kod: Zaznacz cały

return 0;
. Wyświetli Ci w tym miejscu 0.

Next:

Kod: Zaznacz cały

sortowanie(int tablica[x]; int i; int j; int x)
funkcja przyjmuje 4 parametry.
Ty wywołujesz:

Kod: Zaznacz cały

sortowanie(n)
z jednym.

W funkcji sortowanie:

Kod: Zaznacz cały

int tab[x];
po co?
athame
Użytkownik
Użytkownik
Posty: 576
Rejestracja: 2 lut 2012, o 21:42
Płeć: Mężczyzna
Lokalizacja: Radom
Podziękował: 1 raz
Pomógł: 64 razy

[C++] Wyświetlanie tabeli

Post autor: athame »

Poprawny (względnie) kod może wyglądać tak:

Kod: Zaznacz cały

#include<iostream>
#include<time.h>
#include<cstdlib>

using namespace std;

int n=15;
int tab[15];

int sortowanie(int x){
    for (int i = 0; i < x; i++){
        for (int j = 0; j < x-1; j++){
            if (tab[j] > tab[j+1])
                swap(tab[j], tab[j+1]);
        }
    }
    for (int i = 0; i < x; i++)
        cout << tab[i] << " ";
    cout << endl;
}

int main(){
    srand(time(NULL));
    cout << "przed posortowaniem:" << endl;
    for(int i = 0; i < n; i++)
    {
        tab[i] = rand()%10+10;
        cout << tab[i] << " ";
    }
    cout << endl << "po posortowaniu:" << endl;
    sortowanie(n);
    
    return 0;
}
PS. Stosuj tagi dla kodu, bo inaczej temat najpewniej trafi do kosza.-- 21 gru 2015, o 23:25 --
jarzabek89 pisze:funkcja sortowanie zwraca

Kod: Zaznacz cały

return 0;
. Wyświetli Ci w tym miejscu 0.
Niekoniecznie. To już zależy od SO i kompilatora. U mnie zwyczajnie kończy program i czyści rejestry.
ODPOWIEDZ