Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    8

    [c]Programma per contare le lettere in un array

    Ciao a tutti sono nuovo...
    io dovrei scrivere un programma che dato un array contente una frase mi ritorni quante a ci sono:
    nel senso nella frase "algoritmo" ci sono 2 i , 2 o,1 a...

    io avevo già questo programma ma non so come modificarlo:

    grazie in anticipo
    codice:
    #include <stdio.h>
    #define MAX 100
    void caricaVet (int v[MAX], int n);
    void stampaVet (int v[MAX], int n);
    int ricerca (int v[MAX], int n, int x);
    
    int main(void)
      {
      int n,v[MAX],x,p;
        do
        {
         printf("Inserisci n:");
         scanf("%d",&n);
        }
        while (n<0)||(n>MAX);
        caricaVet(v,n);
        stampaVet(v,n);
        printf("Inserisci elemento da cercare x: ");
        scanf("%d", &x);
        p=ricerca (v,n,x);
        if (p==0)
    	printf("Elemento non trovato");
        return 0; 
      }
      void caricaVet(int v[MAX],int n)
       {
       int i;
       for(i=1;i<=n;i++)
          scanf("%d",&v[i]);
       }
      void stampaVet (int v[MAX],int n)
      {
      int i;
      for(i=1;i<n;i++)
        printf("%d \n",v[i]);
      }
      int ricerca (int v[MAX], int n, int x)
      {
      int i,trovato;
      trovato=0;
      for(i=1;i<=n;i++)
        if(v[i]==x)
        {
        printf("elemento trovato in posizione:%d" , i);
        trovato=1;
        }
       return trovato;
      }

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    E che c'entra questo programma?

    Quello che devi fare tu è altro ... prova a scriverne il codice ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    8
    quindi dovrei scrivere un programma da ex novo? ç_ç

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Beh ... certo ...

    E ritengo che debba essere molto piu' semplice ... anche se non hai chiarito bene ...

    Il programma deve contare quante 'a' ci sono (solo le 'a' e la scegli tu o la lettera è fissa) o le occorrenze di ogni lettera?

    Tanto per cominciare, sai scrivere un programma che accetti in input una stringa in un array di char?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    8
    Originariamente inviato da oregon
    Beh ... certo ...

    E ritengo che debba essere molto piu' semplice ... anche se non hai chiarito bene ...

    Il programma deve contare quante 'a' ci sono (solo le 'a' e la scegli tu o la lettera è fissa) o le occorrenze di ogni lettera?

    Tanto per cominciare, sai scrivere un programma che accetti in input una stringa in un array di char?
    Non ho ben capito...un programma per riempire un array con dei char? se è questo si

    Il programma per ogni lettera che trova nell'array della parola da cercare deve dire quante volte viene ripetuta...io ho pensato di fare un array di 26 contatori(dalla A-Z) e fa scorrere dalla 1°lettera (della frase) all'ultima e ad esempio nella frase "ciao bello" vengono usati solo i contatori delle lettere: c,i,a,o,l,b,e...

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Ok ... quindi per ogni lettera (non solo per la 'a') ...

    Il vettore di contatori va bene ... prova ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    8
    Rieccomi....
    ho scritto questo codice solo che durante l'esecuzione non mi mostra il numero di ripetizioni delle lettere...mi dite dove ho sbagliato?

    codice:
    #include <stdio.h>
    #define MAX 100
    #define ALF 26
    void caricaVet1(int alfa[MAX],int i);/*funzione dell'array con le lettere dell'alfabeto*/
    void caricaVet2(char str[MAX],int i);/*funzione dell'array con la frase da analizzare*/
    void ricercaVet(char str[MAX],int alfa[MAX]);/*ricerca delle lettere*/
    void stampaVet(int alfa[MAX],int i);/*stampa*/
    int main()
      {
      int i;
      char str[MAX],carattere;
      int alfa[ALF];
      caricaVet1(alfa,i);
      caricaVet2(str,i);
      ricercaVet(str,alfa);
      stampaVet(alfa,i);
    
      printf("\n");
      }
      
    void caricaVet1(int alfa[MAX],int i)
    {
      char carattere='a';
    for(i='a';i<=ALF;i++,carattere++)
        {
        alfa[i]=carattere;
        }
     
    }
    void caricaVet2(char str[MAX],int i)
    {
      printf("Inserisci la frase: \n");
      gets(str);
    }
    void ricercaVet(char str[MAX],int alfa[MAX])
    {
      int i;
      for(i=0;i<MAX;i++)
      {
      if (str[i]==alfa[i])
        {
        alfa[i]+=1;
        }
      }
    }
    
    void stampaVet(int alfa[MAX],int i)
    {
    for(i=0;i<=ALF;i++)
        {
        printf("%d",alfa[i]);
        }
    
    }

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Ci sono parecchi errori ... ti ripropongo il codice corretto ... vedi tu di studiarne le differenze ...

    Se hai dubbi, chiedi

    codice:
    #include <stdio.h>
    
    #define MAX 100
    #define ALF 26
      
    void caricaVet(char str[MAX])
    {
    	printf("Inserisci la frase: \n");
    	gets(str);
    }
    
    void ricercaVet(char str[MAX], int alfa[ALF])
    {
    	int i;
    	
    	for(i=0; i<MAX; i++)
    		if(str[i]>='a' && str[i]<='z')
    			alfa[str[i]-'a']++;
    }
    
    void stampaVet(int alfa[ALF])
    {
    	int i;
    	for(i=0; i<ALF; i++)
    		printf("%c=%d\n", i+'a', alfa[i]);
    }
    
    
    int main()
    {
      char str[MAX];
      int alfa[ALF];
      int i;
    
      for(i=0; i<ALF; i++)
    	  alfa[i]=0;
    
      caricaVet(str);
      ricercaVet(str, alfa);
      stampaVet(alfa);
    
      printf("\n");
    }
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    8
    Grazie mille oregon...solo una cosa:
    nella funzione ricercavet non ho capito bene l'istruzione
    codice:
    alfa[str[i]-'a']++;

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    L'hai esaminata pezzo per pezzo ?

    Cosa è

    str[i]

    cosa ottengo se a questo sottraggo

    'a'

    e quando questo diventa indice di

    alfa[ ]

    se faccio

    ++

    cosa succede all'elemento di alfa?
    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.