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
Explicație
Există și alte soluții corecte.
#include <bits/stdc++.h> using namespace std; char a[1000][21]; int main() { int n; cin >> n; for(int i = 0 ; i < n ; ++i) cin >> a[i]; int k; cin >> k; for(int i = 0 ; i < n ; ++i) { int j = 0; int cnt=0; while(a[i][j]!='\0') { cnt++; j++; } if(cnt==k) { j=0; while(a[i][j]!='\0') { cout << a[i][j]; j++; } cout << ' '; } } for(int i = 0 ; i <= n ; ++i) { int j = 0; int cnt=0; while(a[i][j]!='\0') { cnt++; j++; } if(cnt!=k) { j=0; while(a[i][j]!='\0') { cout << a[i][j]; j++; } if(i!=n) cout << ' '; } } return 0; }