Esercizio su vettori in C

di il
61 risposte

61 Risposte - Pagina 3

  • Re: Esercizio su vettori in C

    SuperManPC ha scritto:


    oregon ha scritto:


    E che c'entra la frequenza con il controllo di cui parli??

    Devi solo CONTARE

    frequenza[c]++;
    Ma direi che a me non server contare le lettere minuscole
    No forse mi sono sbagliato, forse mi serve
  • Re: Esercizio su vettori in C

    Ti ho già detto come fare e che la if non c'entra nulla. Ma tu insisti. Ritorna a

    frequenza[c]++;


    con cui ottieni la frequenza di TUTTI i caratteri. Qui non si tratta di basi del C ma di ragionamento.
  • Re: Esercizio su vettori in C

    Ora forse ho capito i tuoi suggerimenti…, però c da solo non è un numero intero e per l' indice ci vuole un intero, quindi si scrive frequenza[c - 'a'] non frequenza[c] vero?
  • Re: Esercizio su vettori in C

    oregon ha scritto:


    Ti ho già detto come fare e che la if non c'entra nulla. Ma tu insisti. Ritorna a

    frequenza[c]++;


    con cui ottieni la frequenza di TUTTI i caratteri. Qui non si tratta di basi del C ma di ragionamento.
    Ah ok non pensavo che con un ciclo e dentro frequenza[c]++ potevo ottenere tutte le frequenze
  • Re: Esercizio su vettori in C

    Non pensavi ma se ci rifletti pensa a cosa succede e cosa vuol dire esattamente

    frequenza[c]++

    Perché non fai un esempio pratico con una piccola frase e ci mostri cosa succede?
  • Re: Esercizio su vettori in C

    Si ok lo faccio e invio qua
  • Re: Esercizio su vettori in C

    Forse non è questo l' esempio che chiedevi oppure corrispondeva all' esercizio di prima? Nel caso cosi non mi va ancora, secondo te perché?
    
    #include <stdio.h>
    // conta la frquenza dei diversi caratteri contenuti nel testo d' ingresso
    main()
    {
    	int c, i;
    	int frequenza[26];
    	for (i = 0;i < 26;++i)
    	{
    		frequenza[i] = 0;
    	}
    
    	while ((c = getchar()) != EOF)
    	{
    		if (c >= 'a' && c <= 'z')
    			frequenza[c-'a']++;
    		printf("%d", frequenza[c-'a']);
        }
    }
    
  • Re: Esercizio su vettori in C

    Comunque frequenza[c]++ è frequenza[c] = frequenza[c] + 1;Questo è quello che fa veramente forse?
  • Re: Esercizio su vettori in C

    SuperManPC ha scritto:


    Comunque frequenza[c]++ è frequenza[c] = frequenza[c] + 1;Questo è quello che fa veramente forse?
    Certo. Non conosci l'operatore ++ ?
  • Re: Esercizio su vettori in C

    Si si lo conosco, posso farti vedere il codice che adesso conta la frequenza ma fa casino un po'?.
  • Re: Esercizio su vettori in C

    Lo hai mostrato già no?
  • Re: Esercizio su vettori in C

    Eh si ma non funziona come vorrei...
  • Re: Esercizio su vettori in C

    Si si non lo rimando mi sono sbagliato
  • Re: Esercizio su vettori in C

    Secondo printf e quello che c'è dentro è giusto come sintassi e ragionamento ? Perché non fa quello che vorrei
  • Re: Esercizio su vettori in C

    La visualizzazione deve avvenire quando hai finito di inserire la frase, fuori dal while, ovviamente, se no come conta le frequenze?
    
    	while ((c = getchar()) != EOF)
    		if (c >= 'a' && c <= 'z')
    			frequenza[c - 'a']++;
    
    	for(c=0; c<26; c++)
    		if(frequenza[c]>0)
    			printf("Lettera %c : %d\n", c+'a', frequenza[c]);
    			
Devi accedere o registrarti per scrivere nel forum
61 risposte