Ragazzi, mi sto impappinando. Non riesco a fare un esercizio.
Il programma deve acquisire una stringa con massimo 60 caratteri e:
a. Stabilire quante sono le parole contenute effettivamente nella stringa
b. Calcolare la media della lunghezza delle parole
Non riesco proprio ad andare avanti con il secondo punto. La variabile cont è un contatore che conta i caratteri della stringa, ma non so dove metterla e come fare la media in seguito.
Ho inizializzato anche somma ma non usata. Provato in molti modi
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#define N 61
int main()
{
char str[N];
char tmp[N];
int i, l, j, lung, cont, somma, totale, pos;
float media;
printf("Inserire stringa: ");
gets(str);
if(strlen(str)>60) // controllo la lunghezza
{
printf("Errore, il numero di caratteri inserito e' troppo grande.");
return -1;
}
if(str[0]=='\0') // controllo che ci sia almeno una parola
{
printf("Nessuna parola inserita.");
return -2;
}
l=0;
lung=strlen(str);
for(i=0; i<=lung; i++) // <= perchè conteggio anche l'ultima posizione, cioè "\0"
{
if(isspace(str[i])!=0)
{
l++;
}
if(str[i]=='\0')
{
l++;
}
}
printf("Parole %d\n", l);
cont=0;
somma=0;
pos=0;
for(i=0; i<lung ; i++)
{
if(isspace(str[i])==0)
{
tmp[i]=str[i];
cont++;
pos++;
}
else
{
pos++;
i=pos; // Faccio saltare ad i la posizione dello spazio.
}
}
media=(float)(somma/l);
printf("Media= %f", media);
return 0;
}