vbextreme ha scritto:
#define NROW 10
#define NCOL 20
int map[NROW * NCOL];
//example 1 to linear
int ix,iy;
for (iy = 0; iy < NROW ; iy++)
{
for (ix = 0; ix < NCOL ; ix++)
{
map[ (iy * NCOL) + ix ] = 0;
}
}
//example input user with index base 1 to size
//..input emulation
int inpy = 5;
int inpx = 4;
map[ ( (inpy - 1) * NCOL) + (inpx-1) ] = 1;
Non ho ben capito cosa non riesci,posta di nuovo il codice e spiegati meglio
praticamente voglio che che l'array monodimensionale viene stamapata come una tabella semplice di NCOL e NRIG che ho definito nella #define.
Non capisco come impostarlo!??
#include <stdio.h>
#define NCOL 25
#define NRIG 15
#define N NCOL * NRIG
#define File "array_file.txt"
int array [N];
int i, j;
int riga, col;
int molt;
int main () {
FILE *fp;
if (!(fp = fopen (File, "w"))) //apertura file
{
printf ("Errore: impossibile aprire file", File);
exit (1);
}
for(i=0; i<N; i++) //ciclo d'inserimento
array [i]= (i+1) *2;
for (i=0; i<N; i++)
{ //ciclo stampa array su file
for (j=0; j<=NCOL-1; j++)
fprintf (fp, "array:%d\t",array [i]);
fprintf (fp, "\n\n" , j);
}
fclose(fp);
printf ("La tabella ha %d righe e %d colonne. \n", NRIG, NCOL);
do {
printf ("Inserisci numero riga dell'elemento desiderato: ");
scanf ("%d",&riga);
printf("\n");
printf ("Inserisci numero colonna dell'elemento desiderato: ");
scanf ("%d",&col);
if ( !( (riga<=NRIG && riga>0) && (col<=NCOL && col>0) ) )
{
printf("\n");
printf ("Errore: valore fra 1 e %d per le righe e fra 1 e %d per le colonne\n", NRIG, NCOL);
}
} while ((riga>NRIG || riga<0) || (col>NCOL || col<0));
molt = (riga - 1) * NCOL + col - 1; //calcolo per trovare indirizzo
printf ("\n Indice elemento array: %d\n", molt);
getchar();
if (molt<N)
printf (" Il contenuto dell'elemento in riga %d e colonna %d è: %d", riga, col, array [molt]);
getchar();
}