Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    107

    [c] Conteggio parole di n lettere

    ho scritto questo programmino che dovrebbe contarmi le parole di 3 lettere che riceve di input da tastiera, ma c'è qualcosa che non va, dopo l'inserimento stringa, entra in loop, penso dipenda dall'ultimo if....

    codice:
    #include <stdio.h>
    #include <string.h>
    
    int main()
    {
        char testo[100], separatori[]={' ','\n','\t','\0'};
        int n_caratteri,n_parole,i, contatore=0;
        printf("inserire testo: \n");
        gets(testo);
    
        for(i=0;i<100;i++)
    
        {
        while(testo[i]!='\0')
           {
            if(testo[i]!=' '|| testo[i]!='\n'||  testo[i]!='\t')
            n_caratteri++;
            else
            n_parole++;
            if(n_caratteri==3 && testo[i+1]==' ' || testo[i+1]=='\n' || testo[i+1]=='\t')
            {
                contatore=contatore+1;
                n_caratteri=0;
            }
        }
      }
      printf("numero di parole con 3 lettere: %d",contatore);
    
      return 0;
    }
    qualcuno saprebbe dirmi dove sbaglio???

    grazie in anticipo, spero che stavolta il thread sia fatto bene...

  2. #2
    Per ora non ho controllato se il programma fa quello che ti serve, ma entra in loop perchè in pratica il for esterno è inutile, in quanto quello conta è il while interno, che continua all'infinito non essendoci un incremento della i, ti conviene eliminare il for e fare una cosa del genere:

    codice:
    i = 0;
    
    while(testo[i]!='\0')
    {
            if(testo[i]!=' '|| testo[i]!='\n'||  testo[i]!='\t')
                     n_caratteri++;
            else
                     n_parole++;
            if(n_caratteri==3 && testo[i+1]==' ' || testo[i+1]=='\n' || testo[i+1]=='\t')
            {
                     contatore=contatore+1;
                     n_caratteri=0;
            }
      
            i++;
    }
    Salute a voi, da Laikius!

    --> Faber est suae quisque fortunae <--

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.