Visualizzazione dei risultati da 1 a 7 su 7

Discussione: [C]Numero combinazioni

  1. #1

    [C]Numero combinazioni

    Ciao,
    devo trovare il numero di combinazioni che si possono ottenere da una matrice quadrata applicando il minore complementare:
    la matrice è 4X4
    1 combinazione è la matrice 4X4
    4 combinazioni sono le matrici 3X3
    12 combinazioni sono le matrice 2X2
    24 combinazioni sono le matrici 1X1

    Il totale quindi deve essere 41

    codice:
    #include<stdio.h>
    int main()
    {
        int dim;
        long long tot=1;
        printf("Inserisci la dimensione della matrice quadrata:");
        scanf("%d", &dim);
        printf("Il numero di combinazioni totale e\': %I64d\n", com(dim, tot));
        system("pause");
        return 0;
    }
    //Implementazione della funzionje che calcola il numero di combinazioni del minore complementare
    long long com(int dimensione,  long long totale)
    {
        if(dimensione==0)
           return totale+1;
        totale=totale*dimensione;
        com(dimensione-1, totale);
    }
    Il problema è che mi da errore di compilazione con la funzione com.

    Ciao e grazie
    P.S. Non sono molto sicuro dell'utilizzo che ho fatto delle variabili long long
    Your time is limited, so don't waste it living someone else's life. Stay hungry, stay foolish. (Steve Jobs)

  2. #2
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,590
    Un'errore che appare a colpo d'occhio è che manca il prototipo della funzione all'inizio...
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  3. #3
    Grazie,
    ho cambiato il codice e ora mi sembra più facile da capire
    codice:
    #include<stdio.h>
    int main()
    {
        int dim, tot=1;
        printf("Inserisci la dimensione della matrice quadrata:");
        scanf("%d", &dim);
        printf("Il numero di combinazioni totale e\': %d\n", com(dim, tot));
        system("pause");
        return 0;
    }
    //Implementazione della funzionje che calcola il numero di combinazioni del minore complementare
    int com(int dimensione, int totale)
    {
        int i, somma=0;
        for(i=dimensione; i>1; i--)
        {
            totale=totale*i;
            somma=somma+totale;
        }
        somma++;
        return somma;
    }
    Ciao e grazie
    Your time is limited, so don't waste it living someone else's life. Stay hungry, stay foolish. (Steve Jobs)

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    250
    Cosa hai cambiato scusa?A me pare che il prototipo manchi comunque..

  5. #5
    Non è più ricorsiva.
    codice:
    #include<stdio.h>
    int com (int,int);
    int main()
    {
        int dim, tot=1;
        printf("Inserisci la dimensione della matrice quadrata:");
        scanf("%d", &dim);
        printf("Il numero di combinazioni totale e\': %d\n", com(dim, tot));
        system("pause");
        return 0;
    }
    //Implementazione della funzione che calcola il numero di combinazioni del minore complementare
    int com(int dimensione, int totale)
    {
        int i, somma=0;
        for(i=dimensione; i>1; i--)
        {
            totale=totale*i;
            somma=somma+totale;
        }
        somma++;
        return somma;
    }
    Ciao
    Your time is limited, so don't waste it living someone else's life. Stay hungry, stay foolish. (Steve Jobs)

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    250
    codice:
    #include<stdio.h>
    int com (int,int);
    int main()
    {
        int dim, tot=1;
        printf("Inserisci la dimensione della matrice quadrata:");
        scanf("%d", &dim);
        printf("Il numero di combinazioni totale e': %d\n", com(dim, tot));
        system("pause");
        return 0;
    }
    //Implementazione della funzione che calcola il numero di combinazioni del minore complementare
    int com(int dimensione, int totale)
    {
        int i, somma=0;
        for(i=dimensione; i>1; i--)
        {
            totale=totale*i;
            somma=somma+totale;
        }
        somma++;
        return somma;
    }
    Adesso hai scritto giusto...prima ti mancava la parte in grassetto

  7. #7
    Grazie
    Your time is limited, so don't waste it living someone else's life. Stay hungry, stay foolish. (Steve Jobs)

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.