Salve avevo questo esercizio da svolgere:
Data una matrice di n righe ed m colonne, di numeri interi minori di 10.
Individuare e stampare le colonne della matrice che contengono tre elementi consecutivi che
abbiano valori successivi.
La soluzione che ho rilevato è la seguente:
#include <stdio.h>
#include <stdlib.h>
#define RIGHE 4
#define COLONNE 5
int main(void) {
int matrice[RIGHE][COLONNE];
int i, k;
i = 0;
int numero_caricato;
while (i < RIGHE)
{
k = 0;
while (k < COLONNE)
{
printf("inserisci il %d, %d valore della matrice: \n", i, k);
scanf("%d", &numero_caricato);
if (numero_caricato < 10)
{
matrice[i][k] = numero_caricato;
k++;
}else printf("Inserisci di nuovo il valore \n");
}
i++;
}
i=0;
while (i<RIGHE)
{
k=0;
while(k<COLONNE)
{
if(matrice[k][i]+1 == matrice[k+1][i] && matrice[k][i]+2 == matrice[k+2][i])
{
printf("%d-%d-%d\n", matrice[k][i], matrice[k+1][i], matrice[k+2][i]);
}
k++;
}
i++;
}
system("pause");
return 0;
}
L'algoritmo funziona ma non mi conta l'ultima colonna
esempio:
3 5 6 7 9
1 3 1 7 5
3 5 2 8 6
1 5 3 9 7
Mandato in esecuzione mi rileva la sequenza: 1 2 3 e la sequenza 7 8 9 ma non 5 6 7
Potete darmi qualche consiglio?