Fiind dat un șir de caractere care se află pe prima linie, să se afle lungimea medie a cuvintelor.
Date de intrare
De pe prima linie se va citi şirul.
Date de ieşire
Pe ecran se va afişa lungimea medie a cuvintelor din text. Numărul va fi afisat cu 2 zecimale.
Restricții și precizări
• Şirul va conține maxim 100 de caractere.
• Şirul va conţine litere mari şi mici precum şi semne de punctuație
• Un cuvânt este definit ca una sau mai multe litere aflate pe poziții consecutive
• În cazul în care şirul nu conţine cuvinte, lungimea medie este 0
Exemplu
Date de intrare
ana are mere
Date de iesire. 3.33
Răspunsuri la întrebare
Răspuns de
0
Salut!
Ai rezolvarea in C++ mai jos
#include <iostream>
#include <cstring>
#include <iomanip>
using namespace std;
int main()
{
char s[101], m[101][20], sep[] = " ";
int ind = 0, suma = 0;
cin.getline(s, 101);
char *p = strtok(s, sep);
while (p)
{
strcpy(m[++ind], p);
p = strtok(NULL, sep);
}
for (int i = 1; i <= ind; ++i)
{
suma += strlen(m[i]);
}
cout << fixed << setprecision(2) << (double)suma/ind;
return 0;
}
Explicatie:
- Dupa ce am citit sirul de caractere, ne creeam o matrice in care retinem doar cuvintele din sirul respectiv. Putem obtine asta ajutandu-ne de functia strtok.
- Functia strtok extrage dintr-un sir de caractere cate un subsir (cuvant) delimitat de caracterele din sirul sep (in cazul nostru sep este un spatiu).
- Biblioteca iomanip ne ajuta sa setam precizia pentru care dorim rezultatul.
mariamagdalena2269:
Multumesc de raspuns! Insa nu e ok rezolvarea, la verificare primesc doar 20 de puncte din 100. Cand nu am Nici un caracter in sir Imi afiseaza nan nu 0 Cum ar trebui .
Alte întrebări interesante
Matematică,
8 ani în urmă
Limba română,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă