Prawdziwe oblicze Informatyki. Tysiące linijek kodu i kompilatory które nigdy nie wybaczają.
Awatar użytkownika

bigosik121195

Posty: 2
Rejestracja: 07 lis 2013, 16:24
    Windows 7 Chrome

Post07 lis 2013, 16:34

Witam!!! Mam problem. Z kolegą do szkoły mamy napisać program który " Napisz program wczytujący ciąg liczb całkowitych. Wydrukuj na ekranie kolejno wszytkie liczby, posortowane malejąco ale w poniższym kodzie źrudłowym jest kilka błędów a my nie wiemy jakich (Najprawdopodobniej pętle oraz wywołanie funkcji). Może mi ktoś powiedzieć co źle i dlaczego.

// źle jest na pewno w "źrudłowym"?

Kod: Zaznacz cały

#include <cstdlib>
#include <iostream>
#include <cstdlib>
 
using namespace std;
 
     
void wypelnij (int tab[10])
 
{ 
     for (int a=0; a>=10 || a<=10; a++) 
     srand(time(0))
     tab[a] = rand()%21+1;
}
void sort (int tab[10],int a)
{
     for (int a=10; a>=0; a--)
     cout<<tab[a]<< " ";
     cout<<endl;
}
void wyswietl (int tab[10])
{ 
     for (int a=0; a<=10; a++) 
     cout<<tab[10]<<" ";
 
 
}
 
int main(int argc, char *argv[])
{ 
 
    cout<<"Program wczytuje ciag liczb calkowitych, oraz wyswietla je kolejno posortowne malejaco"<<endl;
  int tab[10];
    int a;
    cin>>a;
    srand(time(NULL));
    wypelnij(tab);
    sort(tab, a);
    wyswietl(tab);
    system("PAUSE");
    return 0;
 
}

Awatar użytkownika

piotrmika

Zasłużony użytkownik
Posty: 125
Rejestracja: 10 lut 2008, 16:20
Lokalizacja: Kraków
    Windows 8.1 Chrome

Post07 lis 2013, 16:37

Na szybko:

for (int a=0; a<=10; a++)
cout<<tab[10]<<" ";

Stosujesz pętle tylko po to, by w każdym przypadku wyświetlić 11 element tablicy. Powinno być
tab[a]

W przypadku pętli for poprawniejsze jest stosowanie zmiennej i, ale oczywiście nic to nie zmienia poza przejrzystością i klarownością kodu.
MacBook Pro i5/8GB/256GB/Retina/MAC OS X Yosemite
iPhone 6, Samsung Galaxy S6 Edge

Awatar użytkownika

pc.qwerty

Zasłużony użytkownik
Posty: 3276
Rejestracja: 01 lip 2010, 12:28
    Mac OS X Chrome

Post07 lis 2013, 16:38

mamy napisać program który " Napisz program wczytujący ciąg liczb całkowitych.
Program który napisze program? :trollface:
poniższym kodzie źrudłowym jest kilka błędów a my nie wiemy jakich (...). Może mi ktoś powiedzieć co źle i dlaczego.
Tak, kompilator.

Techvortal - twoja odrabialnia zadań domowych :trollface:
There is no cloud. It's just someone else's computer.

Awatar użytkownika

bsystem

Zasłużony użytkownik
Posty: 655
Rejestracja: 03 lis 2010, 16:44
    Windows 7 Chrome

Post07 lis 2013, 16:57

Po pierwsze primo:

Kod: Zaznacz cały

void wypelnij (int tab[10])

{ 
for (int a=0; a>=10 || a<=10; a++)


Ta pętla jest całkowicie bez sensu, potrzebuje a, które będzie zliczać do 10 (bo 10 elementów w tablicy) więc for(int a=0; a<10; a++) i nie wyświetlasz tablicy, tylko przypisujesz do niej wartości ( tab[a]=rand()%21+1;)
srand możesz użyć w mainie tylko raz, nie musisz potem w funkcji.

Po drugie primo, to też będzie średnio działać imo

Kod: Zaznacz cały

void sort (int tab[10],int a)
{
for (int a=10; a>=0; a--)
cout<<tab[a]<< " ";
cout<<endl;
}

Proponuję zastosować do sortowania metodę bąbelkową.

Kod: Zaznacz cały

void sortowanie(int tab1[10])
{

for(int j=0; j<10; j++)
    for(int i=0; i<10; i++)
    {
        if(tab1[i]>tab1[j+1])
        {
            swap(tab1[i], tab1[j+1]);
        }
    }
}
 

Awatar użytkownika

bigosik121195

Posty: 2
Rejestracja: 07 lis 2013, 16:24
    Windows 7 Chrome

Post07 lis 2013, 17:03

piotrmika
Dzięki ale nic to nie zmieniło program nie robi, tego co powinien.

pc.qwerty
Tak, kompilator.
w tym że kompilator nie pokazuje żadnych błędów.
Techvortal-twoja odrabialnia zadań domowych
Kolega powiedział że znajdzie się tu ktoś kto może pomuc :) kto pyta nie błądzi ;)

Awatar użytkownika

pc.qwerty

Zasłużony użytkownik
Posty: 3276
Rejestracja: 01 lip 2010, 12:28
    Mac OS X Chrome

Post07 lis 2013, 17:13

w tym że kompilator nie pokazuje żadnych błędów.
A, no to w takim razie debugger. Resztę wyjaśnił brat.
There is no cloud. It's just someone else's computer.

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 0 gości