Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [C] funzione che restituisce parola più usata

    ciao ragazzi volevo proporvi il seguente esercizio:
    Scrivere il codice di una funzione C che restituisca il valore della parola più frequentemente usata all'interno di una stringa. io basandomi sull'esercizio che ricerca il catattere più usato in una stringa, ho scritto questo:

    codice:
    #include <stdio.h> 
    #include <stdlib.h> 
    int main() { 
    char *frase = "forza la juve la juve"; 
    contaparole(frase); 
    return 0; } 
    void contaparole(char *str) { 
    int i,c=0; char parola=0; 
    for (i = 0; str[i] != '\0'; i++) { 
    if(str[i]>='a'&& str[i]<='z') ; 
    else if(str[i]<'a'|| str[i]>'z')  { 
    if(parola==1) 
    { c++; parola=0; 
    }
     } 
    } printf("La parola piu frequente e' %c, appare per %d volte \n", parola, c); 
    }

    ma non funziona.potete dirmi dove sbaglio?

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    156
    subito noto un errore in

    char *frase = "forza la juve la juve";

    frase è solo un puntatore, ma tu non allochi lo spazio necessario a contenere quella stringa, prova con

    char frase[22] = "forza la juve la juve";

    poi non ho continuato a leggere, ma intanto ti posso dire questo.

    EDIT: ho continuato a leggere, ma l'algoritmo mi sembra completamente sbagliato, spiegaci cosa volevi fare

    Edit2: da quanto tempo non uso il c.... scusami, l'inizializzazione è giusta, è l'algoritmo che non va

  3. #3
    Utente di HTML.it L'avatar di linoma
    Registrato dal
    Mar 2010
    Messaggi
    1,346
    Forse usando strtok riesci a spezzare la frase in maniera piu semplice. Dovresti riordinare un po il codice.
    Per gli Spartani e Sparta usa spartan Il mio github

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,326
    Originariamente inviato da Rising1
    a parte gli scherzi, subito noto un errore in

    char *frase = "forza la juve la juve";

    frase è solo un puntatore, ma tu non allochi lo spazio necessario a contenere quella stringa, prova con
    La dichiarazione è corretta. La stringa "forza la juve la juve" viene allocata staticamente in memoria e ne viene assegnato l'indirizzo al puntatore "frase". Quello che non può fare è, al massimo, modificare la stringa a runtime.

    Il problema è proprio l'algoritmo che non fa niente di quello che dovrebbe fare.
    every day above ground is a good one

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Originariamente inviato da YuYevon
    Il problema è proprio l'algoritmo che non fa niente di quello che dovrebbe fare.
    @palermo92/pablito92 ... Mi pare di avertelo già detto nell'altra discussione ... era il caso di rivederlo prima di ripresentarlo ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.