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

    [C] matrice - errore di sintassi che non vedo....

    mi rileva due errori di sintassi nella riga 17 e nella 23
    codice:
    #include <stdio.h>
    #define nR 20
    #define nC 20
    
    int main(){
        typedef a[nR][nC];
        int i, j, nRi, nCi;
        
        printf("numero desiderato righe = ");
        scanf("%d", nRi);
        printf("numero desiderato colonne = ");
        scanf("%d", nCi);
        
        for(i=0;i<nRi;i++){
           for(j=0;j<nCi;j++){
              printf("a[%d,%d] = ", i,j);
              scanf("%d", &a[i][j]);
              }
           }
        
        for(i=0;i<nRi;i++){
           for(j=0;j<nCi;j++){
               printf("%10d", &a[i][j]);
               printf("\n");
               }
           }
        
        system("pause");
        return 0;
    }
    non ne capisco il motivo....ah poi un'altra cosa prima del secondo errore, nella printf "%10d" è corretto o è un errore di digitazione della prof?

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,326
    Cosa intendi fare con questa riga

    codice:
    typedef a[nR][nC];
    ? La typedef (come suggerisce il nome) serve a definire un tipo di dato, non una variabile. È da lì che si origina il problema. Sostituisci con int a[nR][nC]; e non avrai problemi.

    Per il resto va più o meno bene, solo che hai distribuito male le & :D

    codice:
        printf("numero desiderato righe = ");
        scanf("%d", &nRi);
        printf("numero desiderato colonne = ");
        scanf("%d", &nCi);
        
        for(i=0;i<nRi;i++){
           for(j=0;j<nCi;j++){
              printf("a[%d,%d] = ", i,j);
              scanf("%d", &a[i][j]);
              }
           }
        
        for(i=0;i<nRi;i++){
           for(j=0;j<nCi;j++){
               printf("%10d", a[i][j]);
               printf("\n");
               }
           }

  3. #3
    è vero ora riesco ad eseguirlo....praticamente avevo usato la typedef per un errore di comprensione dalle slide universitarie che stavo studiando, il codice l'ho estratto da 2 procedure (una per la lettura e l'altra per la visualizzazione) e il parametro della matrice era "matrice a" definita con la typedef.

    Adesso eseguendo il programma mi acquisisce infiniti valori incrementando solo il contatore j (quello delle colonne) perchè?

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,326
    Originariamente inviato da Skass89
    Adesso eseguendo il programma mi acquisisce infiniti valori incrementando solo il contatore j (quello delle colonne) perchè?
    ? Cioè questo

    codice:
    #include <stdio.h>
    #define nR 20
    #define nC 20
    
    int main()
    {
    	int a[nR][nC];
    	int i, j, nRi, nCi;
    
    	printf("numero desiderato righe = ");
    	scanf("%d", &nRi);
    	printf("numero desiderato colonne = ");
    	scanf("%d", &nCi);
    
    	for (i = 0; i < nRi; i++) {
    		for (j = 0; j < nCi; j++) {
    			printf("a[%d,%d] = ", i,j);
    			scanf("%d", &a[i][j]);
    		}
    	}
    
    	for (i = 0; i < nRi; i++) {
    		for(j = 0; j < nCi; j++) {
    			printf("%10d", a[i][j]);
    			printf("\n");
    		}
    	}
    
    	return 0;
    }
    non ti funziona?

    Piuttosto fai una piccola modifica al ciclo for di stampa

    codice:
    	for (i = 0; i < nRi; i++) {
    		for(j = 0; j < nCi; j++)
    			printf("%10d", a[i][j]);
    	        printf("\n");
    	}
    così ti stampa riga per riga, penso che abbia più senso ma poi vedi tu :)

    Ah comunque

    nella printf "%10d" è corretto o è un errore di digitazione della prof?
    è corretto, studia i codici di formato della printf(). Serve a stabilire un campo di 10 spazi per ogni numero, in maniera tale da stampare i numeri con una formattazione particolare.

  5. #5
    okok...non avevo letto la modifica della tua risp....ora va come dovrebbe...ma per la stampa a righe e colonne ordinate chiedo troppo per questo programmino?

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,326
    Originariamente inviato da Skass89
    ma per la stampa a righe e colonne ordinate chiedo troppo per questo programmino?
    Che intendi?

  7. #7
    a mò di tabella con i numeri odrdinati nelle loro posizioni secondo le coordinate dei due indici

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,326
    Appunto qualcosa come quello che ottieni con

    codice:
    	for (i = 0; i < nRi; i++) {
    		for(j = 0; j < nCi; j++)
    			printf("%10d", a[i][j]);
    	        printf("\n");
    	}
    che ti suggerivo nell'ultimo post o di meglio? Vuoi forse stampare anche gli indici per ogni elemento? Sono sicuro che lo sai fare.

  9. #9
    no così ottengo i valori uno sotto l'altro....

  10. #10
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,326
    Io ottengo questo

    codice:
    a[0,0] = 1
    a[0,1] = 2
    a[0,2] = 3
    a[1,0] = 4
    a[1,1] = 5
    a[1,2] = 6
    a[2,0] = 7
    a[2,1] = 8
    a[2,2] = 9
             1         2         3
             4         5         6
             7         8         9
    Non va bene? Posta un esempio di come lo vorresti.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.