salve di nuovo
devo realizzare un programma che data una matrice di massimo 100 righe e 100 colonne restituisca un valore max e un vettore.
nelle righe della matrice sono scritte le vittorie del giocatore, nelle colonne le sue sconfitte.
ad esempio se questa è la matrice
-1 3 4 5 2 1
4 -1 2 1 2 3
3 4 -1 4 5 4
1 2 2 -1 3 3
2 2 3 4 -1 1
0 0 0 0 1 -1
le vittorie del giocatore 0 (prima riga) sono 3+4+5+2+1=15 e le sue sconfitte(colonna 0) sono 4+3+1+2+0=10.
N.B. -1 lungo la diagonale principale che devono essere ignorati
scopo del programma è restituire l'indice della riga del giocatore che ha il massimo rapporto tra partite vinte e (partite vinte + partite perse) ed inoltre un array in cui in ogni locazione è salvata la differenza tra partite vinte e partite perse.
ad esempio nel caso del giocatore 0 nella locazione [0] dell'array c'è 5 cioè 15-10.
questo è il codice che ho creato
ci sono alcuni problemi:codice:#include <stdio.h> #include <stdlib.h> #include <string.h> #define MAXRIGHE 100 #define MAXCOLONNE 100 int Matrice(int partite[MAXRIGHE][MAXCOLONNE],int d[],int n) { int i,j,max=0; int partite_vinte=0,partite_perse=0; for(j=0;j<MAXRIGHE;j++) { for(j=0;j<MAXCOLONNE;j++) { if(partite[i][j]==partite[j][i]) ; else { partite_vinte+=partite[i][j]; partite_perse+=partite[j][i]; } } if((partite_vinte/(partite_vinte + partite_perse))>max) max=i; d[i]=partite_vinte - partite_perse; } return max; } int main() { int partite[MAXRIGHE][MAXCOLONNE]={{-1,3,4,5,2,1},{4,-1,2,1,2,3},{3,4,-1,4,5,4},{1,2,2,-1,3,3},{2,2,3,4,-1,1},{0,0,0,0,1,-1}}; int d[6]={0}; int n=6; printf("%d",Matrice(partite,d,n)); return 0; }
prima cosa non so come una funzione(nel mio caso 'Matrice' possa restituire sia un intero(max) che un array di int e quindi come possa restituire 2 cose.
per secondo così compilando non da errori ma nell'esecuzione mi compare segmentation fault :/