Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [C] Valore di array errato

    Ho scritto questo:
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
         int m,n,i,j;
         int MA[10][10];
         printf("Inserire le righe e le colonne della matrice separate da uno spazio: ");
         scanf("%d%d",&m,&n);
         
         for (j=1; j<=m; j++)
             for (i=1; i<=n; i++)
             {
                 printf("\nInserire l'elemento [%d,%d] della matrice A:",i,j);
                 scanf("%d",&MA[i,j]);
             }
             
         printf("\n\n");
         
         for (j=1; j<=m; j++)
             for (i=1; i<=n; i++)
             {
                 printf("\nL'elemento [%d,%d] della matrice A è: %d",i,j,MA[i,j]);
             }
         
         system("pause");
         return 0;
    }
    tuttavia al printf finale il valore dell'array è uguale per tutti gli elementi, e tipo 272599 che significa??????

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Questa sintassi

    MA[i , j]

    non mi sembra corretta ...

  3. #3
    e come dovrei scrivere??

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Come hai dichiarato la matrice?

  5. #5
    Originariamente inviato da oregon
    Come hai dichiarato la matrice?
    è una domanda retorica??
    se no, l'ho dichiarata int A[10][10]
    se si, mi stai dicendo di usare la stessa notazione?? funziona, ho sostituto a MA[i,j] MA[i][j]. Per curiosità, mettendo la virgola come mai me lo compilava bene? E che cosa succedeva? Che cosa erano quei numeroni che uscivano????

    Grazei

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Se scrivi

    MA[i, j] al posto di MA[i][j]

    il compilatore considera solamente l'ultimo indice ignorando tutto quello che c'e' prima.

    Questo equivale quindi a

    MA[j]

    e considerando che MA e' una matrice, quello che vedi sono i puntatori alle colonne (i valori degli indirizzi delle colonne).

    La cosa importante e' che stai facendo un errore piu' "grave" ... gli indici dei vettori in C iniziano da 0. Quindi, i cicli ne devono tenere conto ed essere

    for (j=0; j<m; j++)
    for (i=0; i<n; i++)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.