Ciao a tutti. Sono una studentessa alle prime armi con il linguaggio c. Stavo scrivendo un programma che verifica che in una matrice di n righe e m colonne ci siano almeno due righe nulle.
Io ho scritto così il programma
#include <stdio.h>
#include <stdlib.h>
int main(void) {
//Dichiarazione di una matrice di 100x100 interi
const int maxDim = 100;
int a[maxDim][maxDim];
int N;
int M;
int i;
int j;
int flag1;
int flag2;
int righe0;
int numrighe;
//Inserimento delle dimensioni
printf("Inserisci il numero di righe (max %d)", maxDim);
scanf("%d", &N);
printf("Inserisci il numero di colonne (max %d)", maxDim);
scanf("%d", &M);
//Controllo di allocazione statica
flag1 = (N > 0) && (N <= maxDim);
flag2 = (M > 0) && (M <= maxDim);
if( flag1 && flag2) {
//Lettura della matrice
printf("Leggiamo la matrice");
for(i = 0; i < N; i++) {
for(j = 0; j < M; j++) {
printf("Inserisci a[%d][%d]: ", i, j);
scanf("%d", &a[i][j]);
}
}
//Ricerca delle righe con tutti gli elementi nulli
righe0 = 0;
numrighe=0;
while ((i < N) && (righe0 = 0)) {
if (( a[i][j] == 0) && (a[i][j+1] == 0)){
righe0 = 1;
numrighe++;
}
i++;
}
}
}
//Stampa della matrice
if ((righe0 == 1) && (numrighe >=2)) {
printf("Il numero di righe e' sufficiente");
} else {
printf("Il numero delle righe non e' suffiente");
}
} else {
printf("Errore: la dimensione inserita e' maggiore di %d", maxDim);
}
return 0;
}
Ho pensato di ragionare così : di prendere un elemento di una riga e i suoi successivi e verificare se sono uguali a zero e di contare il numero di righe nulle. Quando vado ad eseguire però, non ottengo il risultato sperato. Cosa c'è di sbagliato? Grazie in anticipo a chi mi aiuterà.