Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 29
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    106

    [C] Ricerca della lettera più frequente in una stringa

    Buona sera a tutti. Ho un problema con un esercizio che dice: "Scrivere un programma che letta una stringa di sole lettere dell'alfabeto visualizzi il numero di vocali , di consonanti e la lettera più frequente. La prima parte dell'esercizio l'ho risolta cioè quella di trovare il numero delle vocali e consonanti ma non ho proprio nessuna idea di come ricercare la lettera più frequente...avete qualche suggerimento da darmi così che potrò risolverlo? Qui di seguito trovate ciò che fin'ora sono riuscito a fare di questo problema.Grazie a tutti per l'attenzione.
    codice:
    #include <stdio.h> 
    #include <stdlib.h> 
    #include <string.h> 
    main() { 
    int i,l,n; 
    char str[100]; 
    printf("Inserisci la stringa: "); 
    gets(str); 
    l=strlen(str); 
    int v=0; 
    int c=0; 
    for(i=0;i<=l;i++){ 
    if((str[i]>=97&&str[i]<=122)||(str[i]>=65&&str[i]<=90)){
    if((str[i]=='a'||str[i]=='e'||str[i]=='i'||str[i]=='o'||str[i]=='u') || (str[i]=='A'||str[i]=='E'||str[i]=='I'||str[i]=='O'||str[i]=='U')) 
    v=v+1; 
    else 
    c=c+1; 
    } } 
    printf("Il numero delle vocali %c: %d\nIl numero delle consonanti %c: %d\n",138,v,138,c); 
    system("PAUSE");
    }

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,472
    Le lettere sono 26 ... crea un vettore di 26 interi, azzeralo e incrementa il singolo elemento in base alla lettera trovata ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    106
    Grazie per la risposta. Dici che dovrei fare dichiarare vet[26] e poi in che senso azzerarlo e incrementarlo in base alla lettera trovata?

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,472
    Azzerarlo nel senso di mettere uguale a 0 tutti i 26 elementi ...

    Incrementare i singoli elementi in base alla lettera trovata ...

    Esempio, se trovi una 'a' allora aumenti di 1 il valore dell'elemento vet[0] ... se trovi una 'e' aumenti di 1 il valore dell'elemento vet[4] ...

    Mi sembra semplice ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    106
    Ok ho capito pensavo in qualcosa di più veloce xò anche così va bene. Grazie tante dell'aiuto che mi hai dato. Buona giornata e alla prossima.

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,472
    Prego ... (più veloce in che senso ..?)
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    106
    Pensavo di non dovere dichiarare ogni vettore e porlo uguale a zero (e quindi scrivere tutte le lettere dell'alfabeto e verificare quale condizione è verificata) ma per esempio con un ciclo for fare una scansione e attraverso questa verificare quale lettera era più frequente nella stringa, però ovviamente non ho idea di come farlo, ma con il metodo che mi hai consigliato è molto più semplice . Grazie tante

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,472
    dichiarare un vettore
    e porre i suoi elementi uguale a zero
    (e quindi scrivere tutte le lettere dell'alfabeto e verificare quale condizione è verificata)
    Perché ... tu scrivi codice per ogni lettera?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    106
    Magari ho capito male a questo punto...io dopo la tua spiegazione ho fatto un ciclo for e poi una sequenza di if a cascata e x ogni if ho messo if str[i]=='a' incrementa di uno if str[i]=='b' incrementa..ecc ecc così fino alla z. Scusami se magari non riesco a capire come farlo bene ma ancora non sono molto pratico con questo linguaggio...

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,472
    Originariamente inviato da giumanji
    ... una sequenza di if a cascata ...
    No ... non si usa una sequenza di if !

    Posta il codice ....
    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.