Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    funzione con matrice NxN [C]

    Salve ragazzi,
    sono alle prese con un esercizio che consiste nel realizzare un programma che mi permetta di creare una matrice quadrata e che però mi stampi a video una matrice con gli elementi che stanno sopra la diagonale principale con quelli che stanno sotto... io il codice l'ho fatto ma il problema è che è richiesta l'uso di almeno una funzione.. come posso fare? mi dice "error type of formal parameter 1 is incomplete"


    ecco il codice:
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    #define MAX 100
    void print(int mat[n][n]);
    int main()
    {
        int i, j, n,temp;
        int mat[MAX][MAX];
    
    
          do{
            printf("quante righe/colonne deve avere la matrice? ");
            scanf("%d",&n);
          }  while(n<=0 || n>MAX);
    
    
    
    
        for(i=0;i<n;i++)
            for(j=0; j<n;j++) {
                printf("inserire il valore di posto %d,%d:",i,j);
                scanf("%d",&mat[i][j]);
    
    
        }
    printf(mat[n][n]);
        return 0;
    }
    
    
    void printf(int mat[n][n]){
    int i,j;
     for(i=0;i<n;i++){
             for(j=0;j<n;j++){
                printf("%d\t",mat[j][i]);
            }
                printf("\n");
        }
    }
    grazie in anticipo.

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Non puoi chiamare la tua funzione printf dato che è una funzione di libreria

    E poi devi passarle semplicemente mat
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    ah si scusa.. errore di battitura comunque mi dice che n non è dichiarato...

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Devi passare n alla funzione ... riproponi il codice dopo averlo corretto.

    Occhio agli errori di battitura altrimenti non ci capiamo ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    codice:
    #include <stdio.h>#include <stdlib.h>
    #define MAX 100
    void print(int n,int mat[n][n]);
    int main()
    {
        int i, j, n,temp;
        int mat[MAX][MAX];
    
    
          do{
            printf("quante righe/colonne deve avere la matrice? ");
            scanf("%d",&n);
          }  while(n<=0 || n>MAX);
    
    
    
    
        for(i=0;i<n;i++)
            for(j=0; j<n;j++) {
                printf("inserire il valore di posto %d,%d:",i,j);
                scanf("%d",&mat[i][j]);
    
    
        }
    print(n,mat[n][n]);
        return 0;
    }
    
    
    void print(int n, int mat[n][n]){
    int i,j;
     for(i=0;i<n;i++){
             for(j=0;j<n;j++){
                printf("%d\t",mat[j][i]);
            }
                printf("\n");
        }
    }
    me lo fa eseguire ma dopo aver inserito i numeri si blocca.. c'è qualche problema nell'esecuzione della funzione

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Nelle dichiarazioni deve essere

    print(int n, int mat[MAX][MAX])

    e nella chiamata

    print(n, mat);
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    hai ragione.. funziona tutto perfettamente ... un'altra cosa.. come dovrei impostarla la funzione se non uso MAX?

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Quote Originariamente inviata da TheJoeseph Visualizza il messaggio
    hai ragione.. funziona tutto perfettamente ... un'altra cosa.. come dovrei impostarla la funzione se non uso MAX?
    Dovresti usare l'allocazione dinamica della memoria (funzione malloc e simili). La conosci?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    io uso il malloc per la creazione di liste concatenate ma in questo caso non ho malta dimestichezza.

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Beh ... non c'è molta differenza ... ma se ancora non sei confidente nell'uso della malloc, usa un massimo con MAX
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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.