[C++]: Sortowanie alfabetyczne

Awatar użytkownika
Harry Xin
Użytkownik
Użytkownik
Posty: 545
Rejestracja: 9 sie 2007, o 19:15
Płeć: Mężczyzna
Podziękował: 148 razy
Pomógł: 83 razy

[C++]: Sortowanie alfabetyczne

Post autor: Harry Xin »

Program się kompiluje (bez warningów), ale po wpisaniu drugiego wyrazu się wysypuje. ;/

Kod: Zaznacz cały

#include<iostream.h>
#include<conio.h>
#include<string.h>

void main()
{
 clrscr();

 cout << "To jest program do sortowania alfabetycznego par wyrazow." << endl;

 char *wyraz1,*wyraz2;
 int a;

 do
  {
   cout << "Podaj pierwszy wyraz: ";
   gets(wyraz1);
   cout << "Podaj drugi wyraz: ";
   gets(wyraz2);

   if(strcmp(wyraz1,wyraz2)<0)
    {
     cout << "Alfabetycznie: ";
     puts(wyraz1);
     cout << " ";
     puts(wyraz2);
     cout << "." << endl;
    }
   else if(strcmp(wyraz1,wyraz2)>0)
    {
     cout << "Alfabetycznie: ";
     puts(wyraz2);
     cout << " ";
     puts(wyraz1);
     cout << "." << endl;
    }
   else cout << "Podane zostaly 2 takie same wyrazy. :P" << endl;

   cout << "Nacisnij 'ESCAPE', zeby zakonczyc dzialanie programu, albo dowolny" << endl;
   cout << "inny klawisz, w celu porownania kolejnej pary wyrazow." << endl;

   while(kbhit()) getch();
   a=getch();
  }
 while(a!=27);
}
arecek
Użytkownik
Użytkownik
Posty: 283
Rejestracja: 26 sty 2007, o 22:11
Płeć: Mężczyzna
Podziękował: 4 razy
Pomógł: 93 razy

[C++]: Sortowanie alfabetyczne

Post autor: arecek »

Skoro i tak używasz to możesz ich użyć zamiast charów ? Teraz działa ale i tak wymaga sporo poprawek :
#include
#include
#include

using namespace std;

int main()
{
cout >wyraz1;
cout >wyraz2;

if(strcmp(wyraz1.c_str(),wyraz2.c_str())0)
{
cout
Awatar użytkownika
Harry Xin
Użytkownik
Użytkownik
Posty: 545
Rejestracja: 9 sie 2007, o 19:15
Płeć: Mężczyzna
Podziękował: 148 razy
Pomógł: 83 razy

[C++]: Sortowanie alfabetyczne

Post autor: Harry Xin »

Kolejna wersja jest następująca (tablica wyrazów):

Kod: Zaznacz cały

#include<iostream.h>
#include<conio.h>

void main()
{
 clrscr();

 cout << "To jest program do sortowania alfabetycznego podanej liczby wyrazow." << endl;

 int a,i,j;
 char tablica[100][30],bufor[30];

 do
  {
   cout << "Ile wyrazow chcesz posortowac \? ";
   cin >> j;

   for(i=0;i<j;i++)
    {
     cout << "Podaj " << i+1 << ". wyraz: ";
     cin >> tablica[i];
     for(int k=i;k;k--)
      {
       if(strcmp(tablica[k],tablica[k-1])<0)
       {
        strcpy(bufor,tablica[k-1]);
        strcpy(tablica[k-1],tablica[k]);
        strcpy(tablica[k],bufor);
       }
      }
    }

   cout << "Alfabetycznie:" << endl;

   for(i=0;i<j;i++)
    {
     cout << tablica[i] << " ";
    }

   cout << "\b" << endl;
   cout << "Nacisnij 'ESCAPE', zeby zakonczyc dzialanie programu, albo dowolny" << endl;
   cout << "inny klawisz, w celu porownania kolejnych wyrazow." << endl;

   while(kbhit()) getch();
   a=getch();
  }
 while(a!=27);
}
Jakby ktoś widział jakieś niedociągnięcia to śmiało pisać. ;)
Oczywiście teraz działa bez zarzutu. :D
ODPOWIEDZ