Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 16 su 16
  1. #11
    Originariamente inviato da Laikius91
    Bè, alla fine fa gli stessi cicli che fa il tuo, solo che li fa in due funzioni separate in modo da allegerire il tutto, non credo si duplichi niente...
    No. Ne fa di più, ed inoltre il codice è duplicato.

  2. #12
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    50
    codice:
    #include <stdlib.h>
    #include <stdio.h>
    void frequenza(char [],int);
    int main()
    {char a[10];
    int i,n;
    printf("inserisci il size dell array:");
    scanf("%d",&n);
    printf("inserisci gli elementi dell array:");
    for(i=0;i<n;i++)
    scanf("%c",&a[i]);
    frequenza(a,n);
    
    system("PAUSE");
    }
    void frequenza(char a[],int n)
    {int i,j;
    char max_char=a[0];
    int frequenza=0;
    for(i=0;i<n-1;i++){
    frequenza=1;
    
    for(j=i+i;j<n;j++){
    if(a[i]==a[j])
    frequenza=frequenza+1;
    }
    for(i=0;i<n;i++){
    if(a[i]>max_char)
    max_char=a[i];
    }
    }
    printf("frequenza:%d\t",frequenza);
    printf("\til carattere + frequente :%c\n",max_char);
    }
    non sta il carattere + frequente ma il primo carattere che immetto da "scanf"...a parte che la scanf + di due caratteri con size n=5 "esempio"....non me le fà immettere
    codice:
    code

  3. #13
    Originariamente inviato da VincenzoTheBest
    No. Ne fa di più, ed inoltre il codice è duplicato.
    Allora: il tuo fa un ciclo grande e per ogni elemento fa un ciclo per verificare le frequenze, quindi fa un ciclo per ogni carattere, pur facendolo nella stessa funzione... Il mio fa il ciclo grande in una funzione e i sottocicli in un'altra funzione....
    Credo che non ci sia nessuna duplicazione o nessuna perdita di efficienza rispetto alla tua versione...

    @asteroid: non si è capito cosa intendi... in ogni caso, se vuoi usare la scanf per riempire un array di caratteri devi fare un ciclo e leggere un carattere alla volta...
    Salute a voi, da Laikius!

    --> Faber est suae quisque fortunae <--

  4. #14
    Originariamente inviato da Laikius91
    Allora: il tuo fa un ciclo grande e per ogni elemento fa un ciclo per verificare le frequenze, quindi fa un ciclo per ogni carattere, pur facendolo nella stessa funzione... Il mio fa il ciclo grande in una funzione e i sottocicli in un'altra funzione....
    Credo che non ci sia nessuna duplicazione o nessuna perdita di efficienza rispetto alla tua versione...
    Se nella funzione howManyChars scorri sempre l'intera stringa allora non fai lo stesso numero di scansioni, ed inoltre perdi efficienza.

  5. #15
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    50
    codice:
    #include <stdlib.h>
    #include <stdio.h>
    void frequenza_char(char [],int);
    int main()
    {char a[10];
    int i,n;
    printf("inserisci il size dell array:");
    scanf("%d",&n);
    printf("inserisci gli elementi dell array:");
    for(i=0;i<n;i++)
    (a[i]=getchar());                           /*<----------------------*/
    frequenza_char(a,n);
    
    system("PAUSE");
    }
    void frequenza_char(char a[],int n)
    {int i,j;
    char max_char=a[0];
    int frequenza;
    for(i=0;i<n-1;i++){
    frequenza=1;
    for(j=i+1;j<n;j++){
    if(a[i]==a[j])
    frequenza=frequenza+1;
    }
    }
    for(i=0;i<n;i++){
    if(a[i]>max_char)
    max_char=a[i];
    }
    printf("frequenza:%d\t",frequenza);
    printf("\til carattere + frequente :%c\n",max_char);
    }
    non mi legge sia la scanf...e sia la getchar, per far inserire i valori, questo è il problema
    codice:
    code

  6. #16
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    50
    codice:
    #include <stdlib.h>
    #include <stdio.h>
    void frequenza_char(char [],int);
    int main()
    {char a[10];
    int i,n;
    printf("inserisci il size dell array:");
    scanf("%d",&n);
    printf("inserisci gli elementi dell array:");
    for(i=0;i<n;i++)
    scanf("%s",&a[i]);
    frequenza_char(a,n);
    
    system("PAUSE");
    }
    void frequenza_char(char a[],int n)
    {int i,j;
    char max_char=a[0];
    char t;
    for(i=0;i<n-1;i++){
    for(j=i+1;j<n;j++){
    if(a[i]==a[j]){
    t=a[i];
    max_char=a[j];
    a[j]=t;
    a[i]=max_char;
    if(a[i]>=max_char)
    max_char=a[i];
    }
    }
    }
    printf("\til carattere + frequente :%c\n",max_char);
    }
    devo usare per forza la scanf("s",&a[i]) e riesco a visualizzare
    codice:
    code

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