Aiuto diagonale secondaria matrice quadrata c

di il
7 risposte

Aiuto diagonale secondaria matrice quadrata c

Salve a tutti , mi sto sforzando in un modo assurdo tra disegnini su paint e codici in c per capire come si calcoli la somma della diagonale secondara in c , il mio professore non l ha spiegata pero l ha data per casa:

#include<stdio.h>
#include<stdlib.h>

main()
{
int i,j; // riga e colonna rispettivamente
int m[3][3];
int s=0;
printf("inserisci i valori della matrice:");
for(i=0;i<3;i++){
for(j=0;j<3;j++)
scanf("%d",&m[j]);
}
for(i=0;i<3;i++){
for(j=0;j<3;j--){
{
s=s+m[j];
}
}
}
printf("somma diag sec:%d",s);
system("PAUSE");
return 0;
}

ecco a voi il "codice" anche se non funzionante, potete spiegarmi dove sbaglio, ma soprattutto il perche di ogni cosa ? spiegatela come se stesse parlando ad un alunno del terzo liceo :,)
grazie mille a tutto

Aaggiungo una modifica:
cercando un po di qua e di la ho trovato che un modo per farlo sarebbe:
for(i=0;i<3;i++){
for(j=0;j<3;j++){
if(j==-i+3){
s=s+m[j];
se riusciste a spiegarmi il perche in modo elementarissimo facendomi veramente capire che cosa vado a fare in questo modo ve ne sarei grato

7 Risposte

  • Re: Aiuto diagonale secondaria matrice quadrata c

    Ciao, è molto semplice. La diagonale secondaria va dall'elemento in alto a destra a quello in basso a sinistra, e questo sicuramente lo sai. Ora, se la matrice è NxN noi abbiamo le righe e le colonne indicizzate da 0 a N-1. Quindi partiamo dall'elemento in alto a destra (riga=0 e colonna=N-1) e da lì ci muoviamo sulla diagonale. Cosa succede? La riga aumenta (perché ci muoviamo verso il basso) mentre la colonna diminuisce (perché ci muoviamo verso sinistra). Quindi due cicli for e hai finito.
  • Re: Aiuto diagonale secondaria matrice quadrata c

    Grazie, ho capito tutto tranne forse la parte piu importante, perche è " N-1",non riesco a capire
  • Re: Aiuto diagonale secondaria matrice quadrata c

    Se numeri N mele a partire da 0, l'ultima sarà la N-1

    5 mele

    mela 0
    mela 1
    mela 2
    mela 3
    mela 4 .... ultima mela e 4 equivale a 5-1
  • Re: Aiuto diagonale secondaria matrice quadrata c

    Miglior modo di spiegare, ringrazio tutti e due , quindi se facessi partire il contatore da 1 sarebbe j=n?

    se numero 4 mele
    1 mela 1
    2 mele 2
    3 mele 3
    4 mele 4
    la 4 mela sara 4-0
  • Re: Aiuto diagonale secondaria matrice quadrata c

    Secondo me, partire da 1 non è una buona idea perché poi "mancheresti" la riga 0 e/o la colonna 0, a meno di non sottrarre sempre 1. E' meglio uniformarsi al modo di contare del calcolatore.
    Ovviamente nel ciclo for puoi mettere i<N, che è solitamente preferito a i <= N-1, nonostante abbiano lo stesso significato.
  • Re: Aiuto diagonale secondaria matrice quadrata c

    Vero gia provato e fa come dici tu , grazie mille ancora
  • Re: Aiuto diagonale secondaria matrice quadrata c

    Prego!
Devi accedere o registrarti per scrivere nel forum
7 risposte