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;
}