Prosiłabym używac prostych algorytmow na poziomie liceum typu: for,while, if:)

Mamy do dyspozycji n ciężarówek. Każda ciężarówka jest opisana za pomocą napisu złożonego z co najmniej 1 i co najwyżej 250 małych liter alfabetu angielskiego (od a do z). Masa ciężarówki jest podana jako długość napisu. Wszystkie ciężarówki różnią się masami.

Opracuj program, który wczytuje ze standardowego wejscia liczbę ciężarówek oraz ich opis każdy w oddzielnym wierszu i zapisuje ten opis do standardowego wyjścia w kolejności rosnącej.

Przykład - Dla danych:
4
aabbcc
klm
z
ns
poprawną odpowiedzią jest:
z
ns
klm
aabbcc

1

Odpowiedzi

2010-02-22T17:57:00+01:00
#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
//pobranie liczby napisow
int size;
cin>>size;

//utworzenie tablicy
string* tab = new string[size];

//wprowadzanie elementow tablicy
for(int i=0; i<size; i++)
cin>>tab[i];

//algorytm sortowania
bool zamiana = true;
for(int i=0; i<size && zamiana == true; i++)
{
zamiana = false;
for(int j=0; j<size-1; j++)
//sortowanie napisow rosnaco pod wzgledem dlugosci
if(tab[j].length() > tab[j+1].length())
{
string buff = tab[j];
tab[j] = tab[j+1];
tab[j+1] = buff;
zamiana = true;
}
}

//wyswietlenie posortowanej tablicy
for(int i=0; i<size; i++)
cout<<tab[i]<<endl;

//usuwanie tablicy
delete []tab;

system("PAUSE");
return 0;
}