Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

[Zadatak] Sortiranje po Abecedi

[es] :: C/C++ programiranje :: C/C++ za početnike :: [Zadatak] Sortiranje po Abecedi

[ Pregleda: 5652 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

ZivaTheMan
Dalibor Zivic
High School
Velika Plana

Član broj: 171942
Poruke: 4
*.adsl-1.sezampro.yu.



Profil

icon [Zadatak] Sortiranje po Abecedi05.02.2008. u 20:43 - pre 197 meseci
Hey caos ljudi..imama jedan problem oko c-a..
Poceo sam da pravim program koji sortira unesena imene po abecedi.
Ali sam se zaglavio i ne mogu da ga zavrsim

Code:

#include <iostream>
#include <conio>
#include <stdio>
#include <stdlib>

main()
{

char *p[50];
char *z1=new char [100];
gets(z1);
p[0]=z1;
char *z2=new char [100];
cin>>z2;
p[1]=z2;
char *z3=new char [100];
cin>>z3;
p[2]=z3;
char *z4=new char [100];
cin>>z4;
p[3]=z4;
char *z5=new char [100];
cin>>z5;
p[4]=z5;

cout<<endl;
                                    
for(int i=0;i<5;i++)
    cout<<p[i]<<endl;



getch();
}


Ja misim da sam dobro odradio prvi deo.Mogu da unesem imena i da ih ispisem,ali ne znam kako da ih sortiram po abecednom redu.

Znam za qsort funkciju ali ne znam da je prilagodim da radi sa ovim karakterima.
Koja je razlika izmedju strcmp || strncmp ?
Ako moze mala pomoc da zavrsim zadatak ?



[Ovu poruku je menjao X Files dana 06.02.2008. u 08:40 GMT+1]
 
Odgovor na temu

laki_srt
laki_srt
ucenik

Član broj: 166987
Poruke: 183
*.tippnet.co.yu.



Profil

icon Re: [Zadatak] Sortiranje po Abecedi05.02.2008. u 21:10 - pre 197 meseci
Code:

char *p[50];
char *z1=new char [100];
gets(z1);
p[0]=z1;
char *z2=new char [100];
cin>>z2;
p[1]=z2;
char *z3=new char [100];
cin>>z3;
p[2]=z3;
char *z4=new char [100];
cin>>z4;
p[3]=z4;
char *z5=new char [100];
cin>>z5;
p[4]=z5;

Ovo ti je prakticnije odraditi sa dvodimenzionalnim nizom.
strcmp(s,t)-uporedjuje string s i t i ako je s<t vraca vrednost <0,ako je s=t vraca 0,a ako je s>t vraca vrednost >0
nisam cuo za fju strncmp(); vec strncpy(); i strcpy();
strncpy(n,s,t)-kopira najvise n znakova iz t u s;
btw kod strcmp trebas obratiti paznju da velika slova imaju manju vrednost od malih slova,znaci ako uporedujes A sa z,program ce ispisati da je z>A
 
Odgovor na temu

ZivaTheMan
Dalibor Zivic
High School
Velika Plana

Član broj: 171942
Poruke: 4
*.adsl-a-1.sezampro.yu.



Profil

icon Re: [Zadatak] Sortiranje po Abecedi05.02.2008. u 21:35 - pre 197 meseci
Izwini shto te mucim ali shto se tice dvo dimenzionalnih nizova (matrica) tu sam slab,pa sam zbog toga izabrao ovu soluciju..
Dali ovde mogu da uglavim qsort + f-ja koja bi sortirala po abecedi,npr ovako :

Code:

qsort(p,50,sizeof(char),uporedi1);


funkcija:
Code:
void uporedi1()
    {
     char z=strcmp(???????)
     ?      
     ?
     ?
     ?
    }

ehh ovo je tezi deo

[Ovu poruku je menjao X Files dana 06.02.2008. u 08:41 GMT+1]
 
Odgovor na temu

laki_srt
laki_srt
ucenik

Član broj: 166987
Poruke: 183
*.tippnet.co.yu.



Profil

icon Re: [Zadatak] Sortiranje po Abecedi05.02.2008. u 21:53 - pre 197 meseci
nikad nisam koristio funkciju qsort,al evo metoda koju ja inace uvek koristim(cini mi se da se zove metoda izbora):
Code:

void sortiraj(char a[][25],int n){/* n-broj imena */
    int i;
    char temp[25];/*pomocni niz u koji ce se smestati jedno ime*/
    for (i=0;i<=n-1;i++)
       for(j=i;j<=n;j++)
        if((strcmp(a[j],a[i]))<0){
            strcpy(temp,a[i]);
            strcpy(a[i],a[j]);
            strcpy(a[j],temp);}
}

dvodimenzionalni nizevi: niz [2][2]={{1,2},{3,4}}; dok bi preko 1 dim izgledalo ovako:
niz1[1][1]={1,2}; niz2[1][1]={3,4}; znaci bukvalno smestas dva niza u jedan niz jedan ispod drugog
i isti je i nacin pristupanja nizu,znaci u ovom primeru bi bilo niz[2][1]=3;,nadam se da sam uspeo bar nesto pojasniti
 
Odgovor na temu

ZivaTheMan
Dalibor Zivic
High School
Velika Plana

Član broj: 171942
Poruke: 4
*.adsl-3.sezampro.yu.



Profil

icon Re: [Zadatak] Sortiranje po Abecedi06.02.2008. u 00:33 - pre 197 meseci
Yupi jejejeejejjeeej
Uspeo sam
Hvala Laki shto si mi pojasnio matrice i objasnio sortiranje.
100% working
Code:

#include <iostream>
#include <conio>
#include <stdio>
#include <stdlib>




main()
{

char *p[5];
char *z1=new char [100];
gets(z1);
p[0]=z1;
char *z2=new char [100];
gets(z2);
p[1]=z2;
char *z3=new char [100];
gets(z3);
p[2]=z3;
char *z4=new char [100];
gets(z4);
p[3]=z4;
char *z5=new char [100];
gets(z5);
p[4]=z5;

cout<<endl;

for(int i=0;i<5;i++)
    cout<<p[i]<<endl;


int i;
int j;
char temp[25];
for (i=0;i<=5-1;i++)
    for(j=i;j<=5;j++)
        if((strcmp(p[j],p[i]))<0)
        {
            strcpy(temp,p[i]);
            strcpy(p[i],p[j]);
            strcpy(p[j],temp);
        }
cout<<endl<<endl;
cout<<"Sortiran niz"<<endl;
for(int i=0;i<5;i++)
    cout<<p[i]<< " ";


getch();
}


[Ovu poruku je menjao X Files dana 06.02.2008. u 08:42 GMT+1]
 
Odgovor na temu

laki_srt
laki_srt
ucenik

Član broj: 166987
Poruke: 183
*.tippnet.co.yu.



Profil

icon Re: [Zadatak] Sortiranje po Abecedi06.02.2008. u 19:02 - pre 197 meseci
a evo i preko dvodimenzionalnog niza:
Code:

#include <iostream>
#include <string>

using namespace std;

int main()
{
char niz[50][50],temp[50];
int broj,i,j;
cout<<"Unesite broj imena:";
    cin>>broj;
cout<<"Unesite "<<broj<<"imena:"<<endl;
for(i=0;i<broj;i++)
        cin>>niz[i];
for (i=0;i<=broj-1;i++)
    for(j=i;j<=broj;j++)
        if((strcmp(niz[j],niz[i]))<0)
        {
            strcpy(temp,niz[i]);
            strcpy(niz[i],niz[j]);
            strcpy(niz[j],temp);
        }
cout<<endl;
cout<<"Imena sortirana po abecedi:"<<endl;
for(i=0;i<broj;i++)
    cout<<niz[i]<<endl;
system("pause");
return 0;
}
 
Odgovor na temu

ZivaTheMan
Dalibor Zivic
High School
Velika Plana

Član broj: 171942
Poruke: 4
*.adsl-3.sezampro.yu.



Profil

icon Re: [Zadatak] Sortiranje po Abecedi06.02.2008. u 20:27 - pre 197 meseci
Bravo Laki CaRe...
Hvala ti puno :)
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: [Zadatak] Sortiranje po Abecedi

[ Pregleda: 5652 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.