Salve a tutti, avrei bisogno di un aiutino su questo esercizio: input di una matrice (possibilmente quadrata), inserimento dei valori sulle diagonali in un vettore, output della matrice e del vettore contenente i valori.
Mi sono bloccato in un punto: non riesco a trovare un modo per stampare il vettore dei valori delle diagonali
codice:
#include <stdio.h>
#define max 10
/*PROTOTIPI*/
void dimensioni(int matrice[max][max], int *righe, int *col);
void input(int matrice[max][max], int righe, int col);
void diagonali(int matrice[max][max], int righe);
void output(int matrice[max][max], int righe, int col);
/*FUNZIONE MAIN*/
int main(void) {
int matrice[max][max], righe, col;
dimensioni(matrice, &righe, &col);
input(matrice, righe, col);
diagonali(matrice, righe);
output(matrice, righe, col);
return 0;
}
/*DIMENSIONE MATRICE*/
void dimensioni(int matrice[max][max], int *righe, int *col) {
printf("Numero righe: ");
scanf("%d", righe);
printf("Numero colonne: ");
scanf("%d", col);
}
/*INPUT MATRICE*/
void input(int matrice[max][max], int righe, int col) {
int i, j;
for(i=0;i<righe;i++) {
for(j=0;j<col;j++) {
printf("Immetti valore [%d][%d]: ", i, j);
scanf("%d", &matrice[i][j]);
}
}
}
/*DIAGONALI MATRICE*/
void diagonali(int matrice[max][max], int righe) {
int i, j;
int v[max];
j=0;
for(i=0;i<righe;i++) {
v[j++]=matrice[i][i];
if(matrice[i][i]!=matrice[i][righe-1-i]) v[j++]=matrice[i][righe-1-i];
}
for(j=0;j< /*Qui non so come stampare i valori*/
printf("%d ", v[j]);
}
}
/*OUTPUT MATRICE*/
void output(int matrice[max][max], int righe, int col) {
int i, j;
for(i=0;i<righe;i++) {
for(j=0;j<col;j++) {
printf("%d ", matrice[i][j]);
}
printf("\n");
}
}
Vi ringrazio in anticipo!