#2692 LungSortDesc
Cerința
Se dă un șir de caractere în care cuvintele sunt formate din litere mici și mari ale alfabetului englez și sunt separate prin spații.
Să se afișeze cuvintele pe ecran, fiecare cuvânt pe câte o linie, în ordinea descrescătoare a numărului de litere. Dacă două cuvinte au același număr de litere atunci ele se vor afișa în ordine lexicografică.
Date de intrare
Programul citește de la tastatură șirul de caractere.
Date de ieșire
Programul va afișa cuvintele din șir pe ecran, conform cerinței.
Restricții și precizări
șirul va conține maximum 255 de caractere
Răspunsuri la întrebare
Răspuns de
2
Răspuns:
#include <bits/stdc++.h>
using namespace std;
char s[260],*p;
int k;
struct cuvant{
char y[260];
}x[260];
int main()
{
cin.get(s,260);
p = strtok(s," ");
while( p ){
strcpy(x[++k].y,p);
p = strtok(NULL," ");
}
for(int i = 1; i < k; i++)
for(int j = i + 1; j <= k; j++)
if( strlen(x[i].y) < strlen(x[j].y) || (strlen(x[i].y) == strlen(x[j].y) && strcmp(x[i].y,x[j].y) > 0) )
swap(x[i],x[j]);
for(int i = 1; i <= k; i++)
cout << x[i].y << '\n';
return 0;
}
Explicație:
Alte întrebări interesante
Matematică,
8 ani în urmă
Limba română,
8 ani în urmă
Engleza,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Limba română,
9 ani în urmă