Programma su matrici

di Anonimizzato16051 il
21 risposte
Salve sto provando a fare questo esercizio sulle matrici , ma ho serie difficoltà a svolgerlo , sono proprio bloccato , nel senso che non riesco a visualizzarlo come mi dice l'esercizio!
Scrivere un programma in linguaggio C che legge da standard input una matrice X(10x10) di interi
e visualizza gli elementi della diagonale principale di X.


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

int main (){

int i , j , x[10][10];

for (i=0 ; i<10 ; i++)
for(j=0; j<10 ; j++){
        printf("x[%d][%d]" , i, j);
        scanf("%d" , &x[i][j]);
}

for (i=0 ; i<10 ; i++)
for(j=0; j<10 ; j++){
        printf("%d\t" ,x[i][j]);
        printf("\n");

}


return 0;
}
grazie in anticipo

21 Risposte

  • Le domande nel forum devono essere precise... Che problema hai?

    P.S. Ricorda che gli elementi della diagonale principale hanno indici UGUALI ...
  • oregon ha scritto:


    ...gli elementi della diagonale principale hanno indici UGUALI ...
    Bella
  • La domanda é cosa sbaglio nella esercizio, la matrice non mi si visualizza e ho difficoltà a capire come muovermi con le matrici!grazie mille
  • gio8890 ha scritto:


    La domanda é cosa sbaglio nella esercizio, la matrice non mi si visualizza
    Il programma parte oppure no?
    Stampa qualcosa oppure no?
    Se si, stampa valori diversi da quelli che vorresti?
    Se si, sono valori contenuti nella matrice o sembrano casuali?
    Se vuoi essere aiutato dai un minimo di informazioni, cosi perdiamo tempo tutti..
  • L'esercizio non dice di visualizzare la matrice intera ma la diagonale principale e ti ho detto cosa devi tenere in considerazione.

    A questo punto ragiona sulle ultime righe del programma. Per visualizzare la diagonale basta un for
  • 
       0  1  2  3  4
    0 [0][1][2][3][4]
    1 [5][6][7][8][9]
    2 [0][1][2][3][4]
    3 [5][6][7][8][9]
    4 [0][1][2][3][4]
    N [.][.][.][.][.]
    
    
       0  1  2  3  4
    0 [X][1][2][3][4]
    1 [5][X][7][8][9]
    2 [0][1][X][3][4]
    3 [5][6][7][X][9]
    4 [0][1][2][3][X]
    N [.][.][.][.][.][X]
    
    
        0    1    2    3    4
    0 [0/0][ 1 ][ 2 ][ 3 ][ 4 ]
    1 [ 5 ][1/1][ 7 ][ 8 ][ 9 ]
    2 [ 0 ][ 1 ][2/2][ 3 ][ 4 ]
    3 [ 5 ][ 6 ][ 7 ][3/3][ 9 ]
    4 [ 0 ][ 1 ][ 2 ][ 3 ][4/4]
    N [ . ][ . ][ . ][ . ][ . ][Y/X]
    
    
    for ( i = 0; i < 5; ++i)
        printf("%d\n",vettore[i][i]
    
  • Vbextreme... Ognuno fa come vuole ma fornire il codice fa bene solo al tuo ego e non a chi dovrebbe arrivarci, con degli spunti, ma da solo ...

    Secondo te quelle linee non potevano fornirle tutti subito? Perché si impiega tempo a cercare di far capire se poi arrivi tu?
  • @Oregon, non è il primo thread di @gio8890 a cui rispondo e penso che abbia piu difficoltà nel capire come sviluppare il codice che scrivere il codice stesso.
    Come avrai ben visto ho dato tutto un possibile svolgimento e non solo le due righe di codice, ho cercato di fargli vedere come ragionare sul problema senza dover cercare di strappare il dente malato.








  • tuixte ha scritto:


    gio8890 ha scritto:


    La domanda é cosa sbaglio nella esercizio, la matrice non mi si visualizza
    Il programma parte oppure no?
    Stampa qualcosa oppure no?
    Se si, stampa valori diversi da quelli che vorresti?
    Se si, sono valori contenuti nella matrice o sembrano casuali?
    Se vuoi essere aiutato dai un minimo di informazioni, cosi perdiamo tempo tutti..

    Mi scuso per scarsità di informazioni! Io metto quel codice ma mi continua a chiedere i valori senza stampare la matrice!questo é il problema ho provato a rifarlo ma senza successo !
  • @gio8890 ... secondo il testo del programma tu NON devi visualizzare la matrice, ma solo quelli della diagonale principale.

    @vbextreme ... tutto bene tranne le ultime due righe, secondo me ci doveva arrivare lui, avrebbe avuto un senso formativo, secondo te no ... il mondo è bello perché è vario.
  • Ma l'input va bene, al massimo potresti modificare l'output cosi:
    
        for (i=0 ; i<10 ; i++){
            for(j=0; j<10 ; j++){
                printf("%d  " ,x[i][j]);
            }
            printf("\n");
        }
    
    e cerca di usare una migliore indentazione
  • oregon ha scritto:


    @gio8890 ... secondo il testo del programma tu NON devi visualizzare la matrice, ma solo quelli della diagonale principale.

    @vbextreme ... tutto bene tranne le ultime due righe, secondo me ci doveva arrivare lui, avrebbe avuto un senso formativo, secondo te no ... il mondo è bello perché è vario.

    ok!comunque se volessi visualizzare la matrice cosa dovrei modificare nel programma?
  • Ma l'hai letto il messaggio precedente??

    Non solo la pappa pronta...
  • Scusa sono andato in confusione!grazie per l'aiuto domani provo a rifare tutto l'esercizio da solo per vedere se ho capito bene!!
Devi accedere o registrarti per scrivere nel forum
21 risposte