Informatică, întrebare adresată de sikesjack1, 8 ani în urmă

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ăspunsuri la întrebare

Răspuns de pmarian98
5

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:


sikesjack1: De ce ai folosit matrice in loc de vector?
pmarian98: am cel mult 20 de cuvinte, fiecare pe cate un rand, cu cate 20 de caractere fiecare
Alte întrebări interesante