/* Scrivere un programma che, data una matrice quadrata (dimensione NxN), ritorni:
- La diagonale della prima matrice;
- La trasposta della prima matrice;
- Il massimo elemento della matrice; */
#include <stdio.h>
int main() {
int N;
int i,j;
printf("Quante righe-colonne vuoi? ");
scanf("%d" , &N);
if(N<0){
printf("Coglione!");
}else{
int mat[N][N]; // Se metto prima assume tutti valori 0, poi sovrascrive sopra quelli
for(i=0; i<N; i++){
for(j=0; j<N; j++){
printf("Inserisci il numero per la riga %d e la colonna %d: " , i , j);
scanf("%d" , &mat[i][j]);
}
}
int max = mat [0][0]; // Metto come massimo provvisorio il primissimo valore della matrice
printf("\nEcco la tua matrice:\n");
for(i=0; i<N; i++){ // Ciclo esterno: seleziona la riga
for(j=0; j<N; j++){ // Ciclo interno: scorre le colonne di quella riga
printf("%d ", mat[i][j]); // Stampa il numero seguito da uno spazio
}
printf("\n"); // FONDAMENTALE: Finito di stampare la riga, va a capo!
}
printf("\nLa diagonale principale è: ");
for(i=0; i<N; i++){
printf("%d " , mat[i][i]); // Basta un ciclo for in cui uso solo una delle due variabili
}
printf("\nLa matrice trasposta è: \n");
for(i=0; i<N; i++){
for(j=0; j<N; j++){
printf("%d ", mat[j][i]); /* Dico alla printf di leggere le coordinate semplicemente al contrario
rispetto a come girano i cicli */
}
printf("\n"); // FONDAMENTALE: Finito di stampare la riga, va a capo!
}
for(i=0; i<N; i++){
for(j=0; j<N; j++){
if(mat[i][j]>max){
max = mat[i][j];
}
}
} printf("\nIl valore massimo della matrice è: %d" , max);
}
return 0;
}
To embed this project on your website, copy the following code and paste it into your website's HTML: