fbpx

Problema #1869 – prosirz – Rezolvari PBInfo

de Mihai-Alexandru

Cerința

Se consideră un text format din cel mult 200 de caractere litere mici și spații. Cuvintele din text sunt separate prin unul sau mai multe spații. Scrieti un program care citește textul și care:

Exemplu

prosirz.in

oana   este    la scoala 

prosirz.out

9 
oanZ   estZ    lZ scoalZ 
scoala oana la este 

Explicație

Sunt 9 vocale în textul citit.

#include <bits/stdc++.h>


using namespace std;

ifstream cin("prosirz.in");
ofstream cout("prosirz.out");

char a[200][200];

int main()
{
    char s[300];
    cin.getline(s , 300);
    int i = 0;
    int cnt = 0;
    while(s[i]!='\0')
    {
        if(s[i]=='a' || s[i]=='A' || s[i]=='e' || s[i]=='E' || s[i]=='i' || s[i]=='I' || s[i]=='o' || s[i]=='O' || s[i]=='u' || s[i]=='U')
            cnt++;
        i++;
    }
    s[i]=' ';
    s[i+1]='\0';
    cout << cnt << endl;
    i=0;
    while(s[i]!='\0')
    {
        if(s[i]!=' ' && s[i+1]==' ')
            cout << 'Z';
        else
            cout << s[i];
        i++;
    }
    s[i]=' ' , s[i+1]='\0';
    i = 0 , cnt = 0;
    int j = 0;
    while(s[i]!='\0')
    {
        if(s[i]!=' ')
        {
            a[cnt][j]=s[i];
            j++;
        }
        else
        {
            j=0;
            if(s[i+1]!=' ')
                cnt++;
        }
        i++;
    }
    cout << endl;
    for(int i = 0 ; i < cnt ; ++i)
        for(int j = i + 1 ; j < cnt ; ++j)
            if(strcmp(a[i] , a[j]) > 0)
                swap(a[i] , a[j]);
    for(int i = cnt-1 ; i >= 0 ;--i)
        if(a[i][0]!=' ')
            cout << a[i] << ' ';
    return 0;
}
Comentarii

S-ar putea sa iti placa