Ciao,
devo fare un programma che, data una matrice RxC, dica se ha una cornice di zeri oppure no.
Il problema è che mi dice che ha una cornice di zeri solo quando tutti gli elementi sono degli zeri.
codice:
#include<stdio.h>
int main()
{
int r, c, nr, nc, tot, op;
float matrice[100][100], val;
printf("Inserici il numero di righe\n");
scanf("%d", &nr);
printf("Inserici il numero di colonne\n");
scanf("%d", &nc);
printf("Dati per la matrice quadrata:\n");
for(r=0; r<nr; r++)
{
for(c=0; c<nc; c++)
{
printf("Inserisci i dati della posizione matrice [%d][%d]", r+1,c+1);
scanf("%f", &val);
matrice [r][c]=val;
while(getchar()!='\n'); //Serve per pulire il buffer di tastiera
}
}
tot=nr*2+(nc-2)*2; //Tot è il numero degli elementi della cornice della matrice
op=ver(matrice,tot,nr,nc);
if(op==1)
printf("La matrice ha una cornice di zeri\n");
else
printf("La matrice non ha una cornice di zeri\n");
system("pause");
return 0;
}
//Implementazione della funzione per la verifica
int ver(float mat[][100], int totale, int righe, int colonne)
{
int x, y, tot=0;
for(x=0; x<righe; x++)
{
for(y=0; y<colonne; y++)
{
if(mat [x][0]==0 || mat [x][colonne-1]==0 || mat [0][y]==0 || mat [righe-1][y]==0)
tot++;
}
}
if(tot==totale)
return 1;
else
return -1;
}
Ciao e grazie