Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    3

    C: mi date una mano con il determinante delle matrici NxN???

    Premetto che sono nuovo nel forum e non molto esperto con C (siate comprensivi... )
    Non riesco a capire come mai il mio codice non viene compilato:

    codice:
    #include <stdio.h> 
    #include<iostream.h>
    #define dim 3
    float pot(int ind) 
    { 
       if(ind%2==0)return 1; 
       else return -1; 
    }  
    
    float det(float mat[dim][dim], int d) { 
       int i,j,k; 
       float D=0; 
       if(d==1)D=mat[0][0]; 
       for(i=0;i<d&&d>1;++i) 
       { 
          float matrid[d-1][d-1]; 
          for(j=0;j<d;++j) 
          { 
             for(k=1;k<d&&j!=i;++k) 
             { 
                if(j<i){matrid[j][k-1]=mat[j][k];} 
                if(j>i){matrid[j-1][k-1]=mat[j][k]; }
             } 
          }
          D=D+pot(i)*mat[i][0]*det(matrid,d-1); 
       } 
       return D; 
    } 
    
    void mat() 
    { 
       int i,j; 
       float m[dim][dim]; 
       printf("scrivi la matrice %dx%d\n",dim,dim); 
       for(i=0;i<dim;++i) 
       { 
          for(j=0;j<dim;++j) 
          { 
             scanf("%f",&m[i][j]); 
          } 
       }
       printf("%f\n",det(m,dim)); 
    } 
    
    int main() 
    { 
       mat(); 
       system("pause");
       return 0; 
    }
    Potete darmi una mano?
    P.S. Il programma attuale rende possibile il calcolo di una 3x3, ma basta cambiare il define iniziale per aumentare o diminuire la dimensione della matrice

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    Re: C: mi date una mano con il determinante delle matrici NxN???

    Originariamente inviato da wdaz92
    Potete darmi una mano?
    Inizia col postare gli errori che ti trova il compilatore...

    ps: il codice si inserisce usando il tag CODE, altrimenti non si capisce nulla
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304

    Moderazione

    Ti invito a prendere visione del Regolamento interno.
    In particolare, quando riscontri degli errori, devi renderli noti a chi legge la discussione. Questo facilita la comprensione di chi esamina il codice e velocizza te nel trovare la soluzione.

    Quindi, riporta tutti i messaggi di errore che il compilatore ti solleva.

    Il codice va postato all'interno degli appositi tag CODE: ho sistemato io questa cosa.

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    3
    codice:
    #include <stdio.h>
    #include<iostream.h> 
    #define dim 3 
    float pot(int ind) { 
    if(ind%2==0)return 1; 
    else return -1; } 
    float det(float mat[dim][dim], int d) { 
    int i,j,k;
    float D=0; 
    if(d==1)D=mat[0][0]; 
    for(i=0;i<d&&d>1;++i) { 
    float matrid[d-1][d-1]; 
    for(j=0;j<d;++j) { 
    for(k=1;k<d&&j!=i;++k) {
    if(j<i){
    matrid[j][k-1]=mat[j][k];}
    if(j>i){matrid[j-1][k-1]=mat[j][k]; } } }
    D=D+pot(i)*mat[i][0]*det(matrid,d-1); } //riga dell'errore
    return D; }
    void mat() { 
    int i,j; 
    float m[dim][dim]; 
    printf("scrivi la matrice %dx%d\n",dim,dim); 
    for(i=0;i<dim;++i) { 
    for(j=0;j<dim;++j) { 
    scanf("%f",&m[i][j]); } } 
    printf("%f\n",det(m,dim)); } 
    int main() { 
    mat(); 
    system("pause");
    return 0; }
    Spero di averlo inserito correttamente...
    Ecco l'errore che mi dà...

    25 Cannot convert `float (*)[(((unsigned int)(((int)d) - 2)) + 1u)]' to `float (*)[3]' for argument `1' to `float det(float (*)[3], int)'

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    3
    nessuno che si degni di rispondere???

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.