• Здраво и добредојдовте на форумот на IT.mk.

    Доколку сеуште не сте дел од најголемата заедница на ИТ професионалци и ентузијасти во Македонија, можете бесплатно да се - процесот нема да ви одземе повеќе од 2-3 минути, а за полесна регистрација овозможивме и регистрирање со Facebook и Steam.

C++ Strukturi

  • Ја почнал/а темата
  • #1

mendi19

Intern
31 јануари 2010
349
11
Znaci sto sakam da prasam ...spored mene dobro e no ne mi raboti dole vo main() koga go povikuvam simpleSort mi javuva ova greska
Код:
 cannot convert `sportist*' to `int*' for argument `1' to `void simpleSort(int*,
sto sakam e ..nizata sportisti da ja podredam spored brojot na golovi i da se pecati na ekran..da go podredam vo opagacki redosled....fala odnapred pozz:)

Код:
#include<iostream>
using namespace std;

struct sportist{           //struktura Sportist
    char ime[30];
    char prezime[30];
    int golovi;
    char tim[10];
};                 //end na strukturata

struct ekipa{     //pocetok na strukturata ekipa
    char kime[30];
    int poeniDoma;
    int poeniGosti;
};                  //kraj na strktura

void citaj(sportist x[],int n)     //funkcija citaj koja ke prima parametri od stuturata sportist
{
    int i;
    for(i=0;i<n;i++)
    {
        cout<<"   "<<endl;
        cout<<"************************************************"<<endl;
        cout<<"Ime:";
        cin>>x[i].ime;
        cout<<endl<<"prezime:"; 
        cin>>x[i].prezime;
        cout<<endl<<"Broj golovi:";
        cin>>x[i].golovi;
        cout<<endl<<"ime na Tim:"<<endl;
        cin>>x[i].tim;
        cout<<"**************************************************"<<endl;
    }
}                //end na funkcijata

void citaj1(ekipa a[],int n)    //funkcija citaj1    koja ke prima parametri od strukturata ekipa
{
    int i;
    for(i=0;i<n;i++)
    {
        cout<<endl<<"Ime na ekipa:";
        cin>>a[i].kime;
        cout<<endl<<"Poeni dobieni doma:";
        cin>>a[i].poeniDoma;
        cout<<endl<<"Poeni dobieni na gosti:";
        cin>>a[i].poeniGosti;
    }
}          //end na funkcijata
void pecati(sportist w[],int n)  //funkcija za pecatanje na ovie podatoci vo ekran
{
    int i;
    for(i=0;i<n;i++)
    {
        cout<<w[i].golovi<<endl;
        cout<<w[i].ime<<endl;
        cout<<w[i].prezime<<endl;
        cout<<w[i].tim<<endl;
    }
}        
void swap(int *i,int *j)         //swap funkcija 
{
    int temp;
    temp=*i;
    *i=*j;
    *j=temp;
}      //end na funkcijata Swap

void simpleSort(int b[],int n)       //funckija za sortiranje 
{
    int i,j;
    for(i=0;i<n-1;i++)
    for(j=i+1;j<n;j++)
    if(b[i]<b[j])
    swap(&b[i],&b[j]);
}      //end na funkcijata simpleSort

int main()        //i main delot
{ 
    int n,i;
    sportist a[n];
    ekipa b[1];
    
    cout<<"Kolku sportisti sakas da vneses :";
    cin>>n;
    
    citaj(a,n); 
    simpleSort(a,n);  
    pecati(a,n);
       
    system("pause");
    return 0;
}
 

vik

Intern
14 април 2007
1,936
31
За конкретниов проблем првиот параметар на simpleSort е низа од int, а при повикот ти му даваш низа од спортисти. Зато јавва грешка.

Али и да го корегираш нема да работи оти таа функција е за сортирање на броеви, треба да ја прилагодиш да сортираш спортисти.

Иначе од каде ја имаш ископирано функцијата за сортирање?:rolleyes:
 

DekoRoker

Gaining Experience
12 септември 2009
625
53
Скопје
dejan.at.mk
Оооо mendi19 си се подобрил гледам, добар си.

Еве каде ти е проблемот, сакаш да сортираш спортисти по голови.
Во simpleSort функцијата треба да ги подверуваш по голови да ги споредува спортистите, не по цели променливи од типот структура, односно наместо b<b[j] да имаш b.golovi<b[j].golovi (не ја гледам програмата, подеси си ги променливите и споредбата, ова е само пример).
Друга работа, swap функцијата треба да смени 2 int променливи кои ги добива како аргументи, а ти и даваш променливи од тип структура како влезен аргумент.. Односно, влезните i и j треба да бидат struct sportist i и j и t исто така да биде sportist. Мислам дека толку е.. Поздрав..
 
  • Ја почнал/а темата
  • #4

mendi19

Intern
31 јануари 2010
349
11
Али и да го корегираш нема да работи оти таа функција е за сортирање на броеви, треба да ја прилагодиш да сортираш спортисти.

Иначе од каде ја имаш ископирано функцијата за сортирање?:rolleyes:
prvo fala zo odovorot....vtoro ne go iskopirav taka go nauciv taka znaev i go napisav taka zosto i golovite se realni broevi pa pomisliv deka ke gi sortira...


Оооо mendi19 си се подобрил гледам, добар си.
fala ..i toa so tvoja pomos...i so resavanje zadaci po 4-5 casa na den ...


no sega stignav na da kazam "povisoko nivo" na zadaci i ....
toa sto go napisav ..e za sortirenje na realni broevi da...no neli i golovite se realni broevi...me zbuni ovde malku ..nesto vaka.:isplashen:


Код:
void swap(struct sportist int *i,int *j)         //swap funkcija 
{
    int temp;
    temp=*i;
    *i=*j;
    *j=temp;
}
i simpleSort

Код:
void simpleSort(struct sportist int b[],int n)        
{
    int i,j;
    for(i=0;i<n-1;i++)
    for(j=i+1;j<n;j++)
    if(b[i].golovi<b[j].golovi)
    swap(&b[i].golovi,&b[j].golovi);
}
no ne e tocno vaka.Zosto ne raboti?Uste maaalku pomos?
pozz do dvajcata ..
 

pandora

Intern
24 февруари 2010
13
0
Скопје
Treba vo f-jata simpleSort koga ja povikuvas f-jata swap parametrite da i bidat
swap(&b,&b[j]) neli treba sportisti da sortiras ti povtorno im pristapuvas na golovite. Parametarot vo simpleSort ne go razbiram "struct sportist int b[]?" ovaa niza za sto e prv pat gledam vakov argument. Odluci za sto ke ti bide [] b
 
  • Ја почнал/а темата
  • #6

mendi19

Intern
31 јануари 2010
349
11
@pandora
pa treba da sortiram sportisti spored golovite ....:ermm:
jas taka gg napisav na pocetok (&b,&[b[j])..gledaj gore kako mi bese...:zbunet3:
 

pandora

Intern
24 февруари 2010
13
0
Скопје
void simpleSort( sportist b[],int n)
{
int i,j;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(b.golovi<b[j].golovi)
swap(&b,&b[j]);
}
Probaj vaka i razmisluvaj, crtaj na list ako ti e tesko da svatis
delot if(b.golovi<b[j].golovi) vo prevod bi bil (ako brojot na golovi na i-tiot sportist e pomal od br na golovi na j-tiot sportist zameni im gi mestata) .So tocka pristapuvas do promenlivata golovi. Znaci nizata b ti e sega niza od sportisti, potocno niza od pokazuvaci.
 
  • Ја почнал/а темата
  • #8

mendi19

Intern
31 јануари 2010
349
11
aleluja brothers heheheheheh
@pandora
tocno ti e ova
Код:
voidSimple(sportist b[],int n)
drugoto e kako sto napisav jas pogore
Код:
delot if(b[i].golovi<b[j].golovi) vo
 prevod bi bil (ako brojot na golovi na i-tiot sportist
 e pomal od br na golovi na j-tiot sportist zameni im gi mestata) 
.So tocka pristapuvas do promenlivata golovi. Znaci nizata b ti e
 sega niza od sportisti, potocno niza od pokazuvaci.
ova mislam deka ne trebase da go pisuvas..mislam jas ne sum tapa...pa da ne znam sto e pomalo pa pogolemo (me ponizuvas so ova)no Ok prosteno ti e hehe i fala sto se potrudi da mi pomognes :bravo:

znaci sega mi raboti vaka gi sortira golovite no drugoto ostanuva isto
Код:
void simpleSort(sportist b[],int n)        
{
    int i,j;
    for(i=0;i<n-1;i++)
    for(j=i+1;j<n;j++)
    if(b[i].golovi<b[j].golovi)
    swap(&b[i].golovi,&b[j].golovi);
}
vnesuvam na primer 2 sportisti:
Код:
ime:afaf                           ime:mendi
prezime:afaf                     prezime:hhhhhh
golovi:34                          golovi:55
i vraca vaka:
Код:
55
mendi
hhhh
34
afaf
afaf
gi sortira samo golovite ne sportistite ?
 

pandora

Intern
24 февруари 2010
13
0
Скопје
Nikoj ne rece deka si tapa i nemam nikakvi nameri da te ponizam :)
Drugo mi beshe celta koga ti go objasniv gore toj del ama ok
A za posledniot del, neli beshe toa ideata da ti se sortiraat po golovi edinstveno mozes izlezot da go napravis samo iminjata na sportistite da ti gi pecati
 
  • Ја почнал/а темата
  • #10

mendi19

Intern
31 јануари 2010
349
11
Nikoj ne rece deka si tapa i nemam nikakvi nameri da te ponizam :)
hehe znam se zaebavav malku:)
hmmm znaci jas sum napravill sortiranje na golovi i samo golovite se sortirat ....no kako de se sortira celiot sportist po golovi toa mi e celta....
na pr: ako vtoritot sportist ima povece golovi toj da se premesti vo prvo mesto...celiot so ime prezime i golovi...
a ova sto ja napraiv jas samo na golovite mu gi smenuva mestata...da ne treba uste nesto...sto e rabotava?!
 

Stane

Gaining Experience
4 октомври 2007
2,497
77
Па ќе го направиш на ист начин како што ги сортираш головите, со менување на местата, Swap(a, b);.
 
  • Ја почнал/а темата
  • #12

mendi19

Intern
31 јануари 2010
349
11
Код:
 swap(&b[i],&b[j]);
ako ja stavam vaka neli znaci da ja zameni(sortira) celata struktura...??

eve vaka
Код:
 if(b[i].golovi<b[j].golovi)
 swap(&b[i],&b[j])
neli ova znaci ako brojot na golovi e pomala od br...na vtoritot ..sortiraj go celata struktura.. od b stavi ja vo b[j]......!!!

btw ..ne mi raboti vaka!!:chudenje::ermm:
 
  • Ја почнал/а темата
  • #13

mendi19

Intern
31 јануари 2010
349
11
Код:
void simpleSort(sportist b[],int n)     
{
    int i,j;
    for(i=0;i<n-1;i++)
    for(j=i+1;j<n;j++)
    if(b[i].golovi<b[j].golovi)
    swap(b[i],b[j]);
}
jeeeeeee heheh:wohoo:

reseno ....

aj pozzdrav do site sto se potrudia i sto mi pomognaa ...
have a nice day(night) what ever ...pozz i falisimoo
 
  • Ја почнал/а темата
  • #14

mendi19

Intern
31 јануари 2010
349
11
Код:
#include<iostream>
using namespace std;

struct sportist{           //struktura Sportist
    char ime[30];
    char prezime[30];
    int golovi;
    char tim[10];
};                 //end na strukturata

struct ekipa{     //pocetok na strukturata ekipa
    char kime[30];
    int poeniDoma;
    int poeniGosti;

};                  //kraj na strktura

void citaj(sportist x[],int n)     //funkcija citaj koja ke prima parametri od stuturata sportist
{
    int i;
    for(i=0;i<n;i++)
    {
        
        cout<<"************************************************"<<endl;
        cout<<"Ime:";
        cin>>x[i].ime;
        cout<<endl<<"prezime:"; 
        cin>>x[i].prezime;
        cout<<endl<<"Broj golovi:";
        cin>>x[i].golovi;
        cout<<endl<<"ime na Tim:";
        cin>>x[i].tim;
    }
}                //end na funkcijata

void citaj1(ekipa a[],int n)    //funkcija citaj1    koja ke prima parametri od strukturata ekipa
{
    int i;
    for(i=0;i<n;i++)
    {
        cout<<endl<<"Ime na ekipa:";
        cin>>a[i].kime;
        cout<<endl<<"Poeni dobieni doma:";
        cin>>a[i].poeniDoma;
        cout<<endl<<"Poeni dobieni na gosti:";
        cin>>a[i].poeniGosti;
    }
}          //end na funkcijata
void pecati(sportist w[],int n)  //funkcija za pecatanje na ovie podatoci vo ekran
{
    int i;
    for(i=0;i<n;i++)
    {
        cout<<endl<<"*************************************"<<endl;
        cout<<"Ime:"<<w[i].ime;
        cout<<"     "<<w[i].prezime<<endl;
        cout<<"           "<<"Tim:"<<w[i].tim<<endl;
        cout<<"           "<<"Broj golovi:"<<w[i].golovi<<endl;
        cout<<"*********************************************"<<endl;
        
    }
}    
void pecati1(ekipa r[],int n)
{
    int i;
    for(i=0;i<n;i++)
    {
        cout<<"**********************************************"<<endl;
        cout<<" "<<endl;
        cout<<"Ime na ekipa:"<<r[i].kime<<endl;
        cout<<"Poeni dobieni doma:"<<r[i].poeniDoma<<endl;
        cout<<"Poeni dobieni gosti:"<<r[i].poeniGosti<<endl;
        cout<<"Poeni vkupno : "<<r[i].poeniDoma+r[i].poeniGosti<<endl;
        cout<<"********************************************"<<endl;
        }
    }        
void swap( int *i,int *j)         //swap funkcija 
{
    int temp;
    temp=*i;
    *i=*j;
    *j=temp;
}      //end na funkcijata Swap

void simpleSort(sportist b[],int n)       //funckija za sortiranje 
{
    int i,j;
    for(i=0;i<n-1;i++)
    for(j=i+1;j<n;j++)
    if(b[i].golovi<b[j].golovi)
    swap(b[i],b[j]);
}      //end na funkcijata simpleSort
void sort(ekipa a[],int n)
{
int i,j;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if((a[i].poeniDoma+a[i].poeniGosti)<(a[j].poeniDoma+a[j].poeniGosti))
swap(a[i],a[j]);
}

int main()        //i main delot
{ 
    const int max1=100;
    const int max2=20;
    int n,m;
    sportist a[max1];
    ekipa ekipi[max2];
             
    cout<<"Kolku sportisti sakas da vneses :";
    cin>>n;
    citaj(a,n);     
    
    cout<<"Kolku timovi sakas da vneses : ";
    cin>>m;
    citaj1(ekipi,m);
    
    cout<<endl<<"****************************************"<<endl<<endl<<endl;
    cout<<"Za sportisti: "<<endl;
    simpleSort(a,n);
    pecati(a,n);  
    
     cout<<endl<<"****************************************"<<endl;
     cout<<"Za ekipa :"<<endl;
     sort(ekipi,m);
     pecati1(ekipi,m); 
     cout<<"***********************************************"<<endl;
     cout<<"Have a nice day(night) what ever :by Mendi "<<endl;
     cout<<"***********************************************"<<endl;
    system("pause");
    return 0;
}
za sekoj slucaj ako mu zatreba na nekoj :))
 

Биа

Intern
24 ноември 2008
121
15
:bravoska::bravoska::bravoska:
mendi19 прилично си напреднал :bravo:
 

Нови мислења

Последни Теми

Статистика

Теми
43,698
Мислења
848,917
Членови
29,431
Најнов член
XFXRX580
На врв Дно