15/06/17 15:37
FeFeZ
Ciao a tutti, di seguito vi sarà il codice del mio programma in cui sto riscontrando il problema.
Tutto funziona fino al for in cui c'è k=0;k<DIMR&&trovato==0;k++ ....il problema è che non entra in quel ciclo e non riesco a capire perché , ho sbagliato qualcosa per quanto riguarda la sintassi? (il problema consiste in una matrice letta da file in cui devo cercare ogni numero che è sia max di riga che di colonna. Nel for che parte con k=0 sto cercando il massimo di colonna rispetto alla riga in cui ho trovato il max, e poi confronterei i due max per vedere se sono uguali, ma non entra proprio in quel ciclo for!!)
grazie
Tutto funziona fino al for in cui c'è k=0;k<DIMR&&trovato==0;k++ ....il problema è che non entra in quel ciclo e non riesco a capire perché , ho sbagliato qualcosa per quanto riguarda la sintassi? (il problema consiste in una matrice letta da file in cui devo cercare ogni numero che è sia max di riga che di colonna. Nel for che parte con k=0 sto cercando il massimo di colonna rispetto alla riga in cui ho trovato il max, e poi confronterei i due max per vedere se sono uguali, ma non entra proprio in quel ciclo for!!)
grazie
#include <stdio.h> #include <stdlib.h> #define DIMR 5 #define DIMC 8 int main(int argc, char *argv[]) { int i,j,mappa[DIMR][DIMC],trovato,maxr,pos_maxr,k=0,maxc,pos_maxc; if(argc!=2) { printf("errore linea di comando"); return -1; } FILE *fp; fp=fopen(argv[1],"r"); if(fp==NULL) { printf("errore file"); return -2; } for(i=0;i<DIMR;i++) { for(j=0;j<DIMC;j++) { fscanf(fp,"%d",&mappa[i][j]); } } for(i=0;i<DIMR;i++) { maxr=0; for(j=0;j<DIMC;j++) /*trovo il max di riga*/ { if(mappa[i][j]>maxr) { maxr=mappa[i][j]; pos_maxr=j; pos_maxc=i; } } trovato=0; for(k=0;k<DIMR&&trovato==0;k++) /*trovo il max di colonna*/ { if(mappa[k][pos_maxr]>maxr) { trovato==1; } } if(trovato==0) { printf("(%d,%d)",pos_maxc,pos_maxr); } } return 0; }
Ultima modifica effettuata da FeFeZ 15/06/17 15:45
aaa