Kezdőoldal » Számítástechnika » Programozás » Mit kell csináljak a C program...

Mit kell csináljak a C programomal, hogy ABC sorrendbe állitson n darab karakterláncot?

Figyelt kérdés

Feladat:Olvassunk be n darab nevet majd irjuk ki őket névsorban.

Adathasználat: Vektor ami karakterláncot tárol.

A beolvasás és kiiratás megyen csak a rendezés nem müködik, buborék rendezésel kéne megoldjam.

Itt a program amibe be kell irjam még a rendezést.


#include<conio.h>

#include<stdio.h>

#include<string.h>

char nevek[30][25];

int i,n;

int main()

{

printf("Add meg a nevek szamat :");

scanf("%d",&n);

for(i=0;i<n;i++)

{

printf("Adj meg 1 nevet");

gets(nevek[i]);

}

printf("A nevek:");

for(i=0;i<n;i++)

printf("%s",nevek[i]);

getch();

}


2013. febr. 4. 17:21
 1/6 A kérdező kommentje:
A for ciklusokban a kacsacsor forditva kell legyen.
2013. febr. 4. 17:24
 2/6 anonim ***** válasza:

A kacsacsőrök úgy jók ahogy vannak.


Rendezés:

- tudod, hogy a karakterek összehasonlíthatók, kacsacsőrrel, a kódjuk alapján, hiszen egész számokkal reprezentálják őket - ez megad egy ABC sorrendet, persze az ékezetes betűkkel lehet némi gond, de szerintem ezen nem fogsz összeveszni a tanárral

- tudsz hivatkozni az egyes string-ek egyes karaktereire

- két string-et hogyan tudsz összehasonlítani, sorrendiség szempontjából? megkeresed az első olyan karakterüket, amelyben eltérnek, és azokat hasonlítod össze - így megkapod a két string sorrendjét. (persze kezelni kell valahogy azt is, ha az egyik string rövidebb, satöbbi)

- ezt minden string párra meg kell tenned

- a vektorban pedig szépen megcseréled a stringeket az összehasonlítás alapján


Bizonyára tanultatok rendező algoritmusokról. Legalább egyről. Az jó lesz. Csak ott nyilván egész számokra értelmeztétek. Most az ott levő összehasonlító műveletet kell kibővíteni.

2013. febr. 4. 17:31
Hasznos számodra ez a válasz?
 3/6 A kérdező kommentje:

Buborek rendezesel kéne megoldjam megprobáltam de nem müködik.Irjam le külön fügvényekben nem tudom.

#include<conio.h>

#include<stdio.h>

#include<string.h>

char nevek[30][25],seged;

int i,n,j;

int main()

{

printf("Add meg a nevek szamat :");

scanf("%d",&n);

for(i=0;i<=n;i++)

{

printf("Add meg 1 nevet",i);

gets(nevek[i]);

}

for(i=n;i>=1;i--){

for(j=0;j<=i-1;j++){

if(nevek[j]>nevek[j+1])

{

strcpy(seged,nevek[i]);

strcpy(nevek[i],nevek[j]);

strcpy(nevek[j],seged);

}}}

printf("A nevek:");

for(i=0;i<=n;i++)

printf("%s",nevek[i]);

getch();

}

Igy mért nem müködik?

2013. febr. 4. 18:14
 4/6 anonim ***** válasza:
Azért nem megy, mert a nevek[j]-ket nem hasonlíthatod össze kacsacsőrrel. Ezek string-ek, a kacsacsőr pedig számokon van értelmezve. Olvasd az előző írásom (#2).
2013. febr. 4. 21:50
Hasznos számodra ez a válasz?
 5/6 A kérdező kommentje:
Akkor 1 olyan steinfes fugveny kell ami osszehasonlit most nme jut eszembe talan strchr?
2013. febr. 5. 17:31
 6/6 A kérdező kommentje:
ja strcmp
2013. febr. 5. 17:32

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!