Se citeste de la tastatura un text dat care contine mai multe propozitii.Cuvintele textului sunt separate prin:spatiu, virgula sau punct.Să se numere câte propoziţii conţine textul, iar fiecare propoziţie, câte cuvinte are.Va multumesc frumos!
Răspunsuri la întrebare
Răspuns de
1
#include <iostream>
#include <cstring>
using namespace std;
int nrCuv[10005],nrProp,nrC;
char s[10005];
int main()
{
cin.get(s,10000);
int n=strlen(s);
for (int i=1;i<=n;i++)
{
if ((s[i]==' ' && s[i-1]!='.' && s[i-1]!=',') || s[i]==',' || s[i]=='.')
nrC++;
if (s[i]=='.')
{
nrProp++;
nrCuv[nrProp]=nrC;
nrC=0;
}
}
cout<<"Sunt "<<nrProp<<" propozitii"<<'\n';
for (int i=1;i<=nrProp;i++)
cout<<"Propozitia "<<i<<" are "<<nrCuv[i]<<" cuvinte."<<'\n';
return 0;
}
Codul asta merge pentru un text de forma: "Ana are mere, dar nu are pere. Daca Maria ii da pere, Ana acum are si mere si pere." Adica, virgula este lipita de ultimul cuvant si are spatiu dupa, iar punctul lipit de ultimul cuvant cu spatiu dupa.
#include <cstring>
using namespace std;
int nrCuv[10005],nrProp,nrC;
char s[10005];
int main()
{
cin.get(s,10000);
int n=strlen(s);
for (int i=1;i<=n;i++)
{
if ((s[i]==' ' && s[i-1]!='.' && s[i-1]!=',') || s[i]==',' || s[i]=='.')
nrC++;
if (s[i]=='.')
{
nrProp++;
nrCuv[nrProp]=nrC;
nrC=0;
}
}
cout<<"Sunt "<<nrProp<<" propozitii"<<'\n';
for (int i=1;i<=nrProp;i++)
cout<<"Propozitia "<<i<<" are "<<nrCuv[i]<<" cuvinte."<<'\n';
return 0;
}
Codul asta merge pentru un text de forma: "Ana are mere, dar nu are pere. Daca Maria ii da pere, Ana acum are si mere si pere." Adica, virgula este lipita de ultimul cuvant si are spatiu dupa, iar punctul lipit de ultimul cuvant cu spatiu dupa.
Dennord:
Scuze, for-ul este asta: for (int i=0;i<n;i++) { bla bla bla }
Alte întrebări interesante
Fizică,
8 ani în urmă
Limba română,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă