Salve a tutti.
Sto facendo un semplice codice in C con una funzione che legge una matrice (che ho chiamato "percorso") e una funzione per la stampa.
Il codice è il seguente:
#include <stdio.h>
void LEGGI_MATRICE(int percorso[10][10], int, int);
void STAMPA_MATRICE(int percorso[10][10], int, int);
void main()
{
int N, M, percorso[10][10];
printf("Quante righe vuoi inserire? (max 10)\n");
scanf("%d", &N);
printf("Quante colonne vuoi inserire? (max 10)\n");
scanf("%d", &M);
LEGGI_MATRICE (percorso, N, M);
STAMPA_MATRICE(percorso, N, M);
system("pause>nul");
}
void LEGGI_MATRICE(int percorso[10][10], int N_f, int M_f)
{
int i, j;
for (i = 0; i < N_f; i++)
{
for (j = 0; j < M_f; j++)
{
printf("Inserisci la riga %d con colonna %d\n", i,j);
scanf("%d ", &percorso[j]);
printf("Lettura avvenuta ");
}
}
}
void STAMPA_MATRICE(int percorso [10][10], int N_f, int M_f)
{
int i, j;
printf("La tua matrice e'\n");
for (i = 0; i < N_f; i++)
{
printf("|");
for (j = 0; j < M_f; j++)
{
printf("%d ", percorso[j]);
}
printf("|\n");
}
}
Più o meno funziona, l'unico problema è che il primissimo input è come se venisse ripetuto due volte. Voglio ad esempio inserire una matrice 2x2 con i numeri 1 - 2 - 3 - 4. Scrivo quello che mi viene visualizzato a video:
"Quante righe vuoi inserire? (max 10)
2
Quante colonne vuoi inserire?
2
Inserisci la riga 0 con colonna 0
1
2 <------ QUI E' IL PROBLEMA. MI CHIEDE NUOVAMENTE L'INPUT SENZA FARE UNA printf
Lettura avvenuta Inserisci la riga 0 con colonna 1
3
Lettura avvenuta Inserisci la riga 1 colonna 0
4
Lettura avvenuta Inserisci la riga 1 colonna 1 <------ A QUESTO PUNTO NON MI TROVO PIU' CON GLI ELEMENTI PRESTABILITI DA INSERIRE
La tua matrice è:
|1 2 |
|3 4 |
Mi sapreste dire dove sbaglio? Grazie in anticipo.