Ciao a tutti
sto facendo un programmino nel quale vi è una matrice costituita di elementi solo pari a 1 o 0.
Dopo aver inserito gli elementi nella matrice ( con gli opportuni controlli sulla dimensione della matrice e sugli elementi ) devo trovare la riga che contiene il più gran numero di elementi consecutivi con valore uguale ad 1 ed il valore attuale di tale numero.
io ho fatto in questo modo
cercando i numeri di 1 consecutivi in ciascuna riga e memorizzando il loro valore ogni volta in un vettore..ma a quanto pare non è proprio la via giusta..avete suggerimenti ?codice:#include <stdio.h> #define N 100 #define M 100 int main() { int matrix[N][M]; int n, m, i, j, k, z; int num, max; int v[M]; printf("Inserisci il numero di righe ed il numero di colonne della matrice : \n"); scanf("%d %d", &n, &m); if ( n <= N && m <= M ) { printf("Inserisci gli elementi della matrice %d x %d\n", n, m); for ( i = 0; i < n; i++ ) { for ( j = 0; j < m; j++ ) { printf("Inserisci l'elemento [%d][%d] : \n", i, j); scanf("%d", &num); if ( num == 0 || num == 1) { matrix[i][j] = num; } else { printf("Elemento inserito errato \n"); break; } } } } printf("\nLa matrice è : \n"); for ( i = 0; i < n; i++ ) { for ( j = 0; j < m; j++ ) { printf("%d\t", matrix[i][j]); } printf("\n"); } k = 0; for ( i = 0; i < n; i++ ) { max = 0; for ( j = 0; j < m; j++) { if ( (matrix[i][j + 1] - matrix[i][j]) == 0 ) { max += 1; } else { v[k] = max + 1; k++; } max = 0; } } for ( k = 0; k < m; k++ ) { printf("%d\t", v[k]); } return 0; }

Rispondi quotando