fbpx

Problema #2673 – SwapCuv – Rezolvari PBInfo

de Mihai-Alexandru

Cerința

Se dă un şir de caractere care conține cuvinte formate din litere mici și mari ale alfabetului englez. Cuvintele sunt separate prin orice caractere imprimabile care nu sunt litere (cu codurile ASCII mai mari sau egale cu 32). Să se afișeze cuvintele pe cate o linie în felul următor:

Primul
Ultimul
Al Doilea
Penultimul
...

Date de intrare

Programul citește de la tastatură șirul dat.

Date de ieșire

Programul va afișa pe ecran cate o linie cuvintele în funcție de cerintă.

Restricții și precizări

  • propoziția va conține cel mult 255 de caractere.

Exemplu

Intrare

divide and conquer / devide et impera.

Ieșire

divide
impera
and
et
conquer
devide
#include <bits/stdc++.h>
using namespace std;

int main()
{
    char mat[255][255];
    char s[256];
    cin.getline(s , 300);
    int i = 0 , j = 0 , cnt=-1;
    bool ok = false;
    while(s[i]!='\0')
    {
        if(((int)s[i]>=65 && (int)s[i]<=91) || ((int) s[i] <= 122 && (int)s[i]>96))
        {
            if(!ok)
            {
                cnt++;
                ok = true;
            }
            mat[cnt][j]=s[i] , j++;
        }
        else
            j=0 , ok = false;
        i++;
    }
    if(cnt%2==0)
    {
        for(int i = 0 ; i < cnt / 2 ; ++i)
        {
            cout << mat[i] << endl << mat[cnt - i] << endl;
        }
        cout << mat[cnt/2];
    }
    else
    {
        for(int i = 0 ; i <= cnt / 2 ; ++i)
        {
            cout << mat[i] << endl << mat[cnt - i] << endl;
        }
    }
    return 0;
}
Comentarii

S-ar putea sa iti placa