Întrebare
Cerinţa
Să se scrie un program care citește mai multe propoziții și determină propoziția cu cele mai multe cuvinte.
Date de intrare
Fișierul de intrare cuvmax.in conține pe prima linie un număr natural n, iar pe următoarele n linii câte o propoziție alcătuită din litere mici ale alfabetului englez și spații.
Date de ieşire
Fișierul de ieșire cuvmax.out va conține pe prima linie propoziția cu cele mai multe cuvinte.
Restricţii şi precizări
0 fiecare propoziție va conține cel mult 255 de caractere
Exemplu
cuvmax.in
4
somnoroase pasarele
pe la cuiburi se aduna
se ascund in ramurele
noapte buna noapte buna
cuvmax.out
pe la cuiburi se aduna
Să se scrie un program care citește mai multe propoziții și determină propoziția cu cele mai multe cuvinte.
Date de intrare
Fișierul de intrare cuvmax.in conține pe prima linie un număr natural n, iar pe următoarele n linii câte o propoziție alcătuită din litere mici ale alfabetului englez și spații.
Date de ieşire
Fișierul de ieșire cuvmax.out va conține pe prima linie propoziția cu cele mai multe cuvinte.
Restricţii şi precizări
0 fiecare propoziție va conține cel mult 255 de caractere
Exemplu
cuvmax.in
4
somnoroase pasarele
pe la cuiburi se aduna
se ascund in ramurele
noapte buna noapte buna
cuvmax.out
pe la cuiburi se aduna
Întrebare a fost pusă de: USER1585
813 Vezi
500 Răspunsuri
Răspuns (500)
#include <fstream>
#include <cstring>
using namespace std;
ifstream fin("cuvmax.in");
ofstream fout("cuvmax.out");
int nrcuv(char * s){
int c = 0;
if(s[0]!=' ')
c++;
for(int i=1 ; s[i] ; ++i)
if(s[i]!=' ' && s[i-1]==' ')
c++;
return c;
}
int main(){
int n;
char s[251], m[251];
fin >> n;
fin.get();
fin.getline(m,251);
for( ; n ; --n){
fin.getline(s,251);
if(nrcuv(s) > nrcuv(m))
strcpy(m,s);
}
fout << m << endl;
return 0;
}
#include <bits/stdc++.h>
using namespace std;
int n,i,nr,nrmax;
char s[260], *p, sol[260], t[260];
int main()
{
freopen("cuvmax.in", "r", stdin);
freopen("cuvmax.out", "w", stdout);
scanf("%d\n", &n);
for(i = 1; i <= n; ++ i)
{
gets(s);
memset(t, 0, sizeof(t));
strcpy(t, s);
p = strtok(t," ");
nr = 1;
while(p != NULL)
{
nr ++;
p = strtok(NULL," ");
}
if(nr > nrmax)
{
nrmax = nr;
strcpy(sol, s);
}
}
printf("%s",sol);
return 0;
}
using namespace std;
int n,i,nr,nrmax;
char s[260], *p, sol[260], t[260];
int main()
{
freopen("cuvmax.in", "r", stdin);
freopen("cuvmax.out", "w", stdout);
scanf("%d\n", &n);
for(i = 1; i <= n; ++ i)
{
gets(s);
memset(t, 0, sizeof(t));
strcpy(t, s);
p = strtok(t," ");
nr = 1;
while(p != NULL)
{
nr ++;
p = strtok(NULL," ");
}
if(nr > nrmax)
{
nrmax = nr;
strcpy(sol, s);
}
}
printf("%s",sol);
return 0;
}