👤
a fost răspuns

Buna!
Ma poate ajuta cineva cu problema asta?

#2304 Cuvinte7
Scrieţi un program care citeşte de la tastatură, în această ordine, un număr natural n, apoi n cuvinte, separate prin Enter, urmate de un număr natural k. Numerele citite sunt din intervalul [1,20], iar fiecare cuvânt este format din cel mult 20 de caractere, numai litere mici ale alfabetului englez. Cel puţin unul dintre cuvinte are k litere.

Programul construiește în memorie, apoi afișează pe ecran, un șir care să cuprindă cuvintele citite, separate prin câte un spațiu, astfel încât toate cele care au k litere să ocupe primele poziţii, iar celelalte să se regăsească în continuarea acestora, într-o ordine oarecare.


Exemplu
Intrare

5
am
un
cires
de
mai
2
Ieșire

am un de cires mai

Multumesc!


Răspuns :

Răspuns:

#include<iostream>

#include<cstring>

using namespace std;

int main()

{

   char s[21][21];

   unsigned int n,k;

   cin>>n;

   cin.get();

   for(unsigned int i=1;i<=n;i++)

   {

       cin.get(s[i],21);

       cin.get();

   }

   cin>>k;

   for(unsigned int i=1;i<=n;i++)

   {

       if(strlen(s[i])==k)

           cout<<s[i]<<" ";

   }

   for(unsigned int i=1;i<=n;i++)

   {

       if(strlen(s[i])!=k)

           cout<<s[i]<<" ";

   }

}

Explicație: