Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2014
    Messaggi
    11

    [c] Salve ragazzi potete dirmi se le ho implementate bene queste funzioni ?

    /* Sviluppare una function C che, dati come parametri di input un array di char e il suo
    size, determina e restituisce come parametro di output il carattere più frequente.
    */
    codice:
    char MoreFrequentChar(char vet[], unsigned int n)
    {
        unsigned int occurrence[256], max, maxIndex;
        int i;
        
        for (i = 0; i < 256; i++)
            occurrence[i] = 0;
        
        for (i = 0; i < n; i++)
            occurrence[vet[i]]++;
        
        for (max = occurrence[0], maxIndex = 0, i = 1; i < 256; i++)
        {
            if(occurrence[i] > max)
            {
                max = occurrence[i];
                maxIndex = i;
            }
        }
        return maxIndex;
    }
    /* Sviluppare una function C che, dati come parametri di input un array di char e il suo
    size, determina e restituisce come parametro di output il carattere meno frequente.
    */
    codice:
    char LessFrequentChar(char vet[], unsigned int n)
    {
        unsigned int occurrence[224], min, minIndex;
        int i;
    
    
        for (i = 0; i < 224; i++)
            occurrence[i] = 0;
    
    
        for (i = 0; i < n; i++)
            occurrence[vet[i-32]]++;
    
    
        for (min = occurrence[0], minIndex = 0, i = 1; i < 224; i++)
        {
            if(occurrence[i] < min)
            {
                min = occurrence[i];
                minIndex = i;
            }
        }
        return minIndex;
    }

  2. #2
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,590
    codice:
    occurrence[vet[i-32]]++;

    Perché mai -32?
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2014
    Messaggi
    11
    Quote Originariamente inviata da Scara95 Visualizza il messaggio
    codice:
    occurrence[vet[i-32]]++;

    Perché mai -32?
    perchè ho seguito l'esempio dal libro, quindi basterebbe solo "i"? come nella prima ?

  4. #4
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,590
    Se comprendi cosa fa quel -32 in quel punto capisci da te.
    Quello è un indice di un vettore di n elementi, 0 <= i < n, fai le tue considerazioni.
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2014
    Messaggi
    11
    Quote Originariamente inviata da Scara95 Visualizza il messaggio
    Se comprendi cosa fa quel -32 in quel punto capisci da te.
    Quello è un indice di un vettore di n elementi, 0 <= i < n, fai le tue considerazioni.

    Spiegazione del libro:
    224 è il numero di caratteri stampabili del codice ascii, infatti i primi 32 sono caratteri di formattazione e controllo

    Qual'è il modo giusto quindi ?? sto facendo un po di confusione io

  6. #6
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,590
    Se vuoi sottrarre 32, lo devi sottrarre al carattere, non all'indice, altrimenti puoi fare come hai fatto nel primo spezzone di codice
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2014
    Messaggi
    11
    Quote Originariamente inviata da Scara95 Visualizza il messaggio
    Se vuoi sottrarre 32, lo devi sottrarre al carattere, non all'indice, altrimenti puoi fare come hai fatto nel primo spezzone di codice

    quindi posso anche lasciare solamente l'indice i ? soddisferebbe ugualmente la richiesta della seconda traccia ?

  8. #8
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,590
    Quote Originariamente inviata da cimmiv Visualizza il messaggio
    quindi posso anche lasciare solamente l'indice i ? soddisferebbe ugualmente la richiesta della seconda traccia ?
    Certo, però devi ampliare l'array
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2014
    Messaggi
    11
    ti chiedo scusa per le domande, ma ho da poco iniziato a programmare in c ... in che senso devo ampliare l'array ?

  10. #10
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,590
    Quote Originariamente inviata da cimmiv Visualizza il messaggio
    ti chiedo scusa per le domande, ma ho da poco iniziato a programmare in c ... in che senso devo ampliare l'array ?
    O fai
    codice:
    occurrence[vet[i]-32]++;
    //...
    return minIndex + 32;
    oppure
    codice:
    unsigned int occurrence[256], min, minIndex;
    //...
    occurrence[vet[i]]++;
    //...
    for (min = occurrence[0], minIndex = 0, i = 1; i < 256; i++) {
    //...
    }
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

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.