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

[Zadatak] sortiranje znakova u dvodimenzionalnom polju

[es] :: C/C++ programiranje :: C/C++ za početnike :: [Zadatak] sortiranje znakova u dvodimenzionalnom polju

[ Pregleda: 1602 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

turnceler
student
pula

Član broj: 169227
Poruke: 5
*.adsl.net.t-com.hr.



Profil

icon [Zadatak] sortiranje znakova u dvodimenzionalnom polju13.01.2008. u 17:40 - pre 198 meseci
Trebao bih sortirati varijablu char y[4][5] postupkom kojim se sortiralo varijablu char x[5].
Rješenje sa stringovima znam, ali ja bih ako je moguće to htio na ovaj teži način.
Da li je to izvedivo?

pozdrav

Code:

#include <iostream>
using namespace std;

int main()
{
    int i,pom,j=0;
    char x[5]={"ahdb"};
    //char y[4][5]={"bcdf","nbfk","kjfz","abcl"};
    for (i=0;i<6;i++)
            for (j=i+1;j<5;j++)
                if (x[j]<x[i])
                    {
                    pom=x[i];
                    x[i]=x[j];
                    x[j]=pom;
                    }
    for (i=0; i<5; i++)
        cout<<x[i];
}


[Ovu poruku je menjao X Files dana 19.09.2008. u 12:49 GMT+1]
 
Odgovor na temu

dr_z
Novi Sad

Član broj: 76008
Poruke: 6
*.ns.ac.yu.



Profil

icon Re: [Zadatak] sortiranje znakova u dvodimenzionalnom polju01.02.2008. u 20:20 - pre 197 meseci
Code:

#include <iostream>
using namespace std;

bool cmp(char* s1,char* s2){
    for(int i=0;i<4;i++)
        if(s2[i]<s1[i])
            return 1;
            else
                if(s2[i]>s1[i])
                    return 0;
    return 0;
}

int main(){
    char* y[4]={"bcdf","nbfk","kjfz","abcl"};
    
    for(int i=0;i<3;i++)
        for(int j=i+1;j<4;j++)
            if(cmp(y[i],y[j])){
                char* t;
                t=y[i];
                y[i]=y[j];
                y[j]=t;    
                                //razmjenjujes samo adrese
            }
    
    for(int i=0;i<4;i++)
        cout<<y[i]<<endl;
    
    return 0;
}


ili manje efikasno

Code:

#include <iostream>
#include <cstring>
using namespace std;

bool cmp(char* s1,char* s2){
    for(int i=0;i<4;i++)
        if(s2[i]<s1[i])
            return 1;
            else
                if(s2[i]>s1[i])
                    return 0;
    return 0;
}

int main(){
    char y[4][5]={"bcdf","nbfk","kjfz","abcl"};
    
    for(int i=0;i<3;i++)
        for(int j=i+1;j<4;j++)
            if(cmp(y[i],y[j])){
                char t[5];
                strcpy(t,y[i]);
                strcpy(y[i],y[j]);
                strcpy(y[j],t);
                                //razmjenjujes citave nizove
            }
    
    for(int i=0;i<4;i++)
        cout<<y[i]<<endl;
    
    return 0;
}

"I don't believe it. Prove it to me and I still won't believe it."
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: [Zadatak] sortiranje znakova u dvodimenzionalnom polju

[ Pregleda: 1602 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

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