PDA

Visualizza la versione completa : Perchè non inserisce bene i dati nell' array?!!!


UnderScore
12-11-2013, 18:43
Salve,
ho un array bidimensionale in cui inserisco dei valori. Durante il ciclo li scrive bene, a fine ciclo me li sballa. Controllate voi stessi...


#include <stdio.h>
#include <stdlib.h>
#define MAX_VAL 100
int main()
{
float vals[MAX_VAL][1];
int num,i;
printf("Inserisci in numero di misure effettuate: ");
scanf("%d",&num);
printf("\nInserisci le misure con i relativi errori:\n");
for (i=0;i<num;i++)
{
scanf("%f",&vals[i][0]);
scanf("%f",&vals[i][1]);
printf("\n%f %f %d\n",vals[i][0],vals[i][1],i);
}
printf("%f %f",vals[0][0],vals[0][1]);
system("pause>nul");
return 0;
}

salmo
12-11-2013, 18:58
prova a mettere float vals[MAX_VAL][2];

UnderScore
12-11-2013, 18:59
fatto, ma niente...

oregon
12-11-2013, 19:20
Questa deve essere necessariamente

float vals[MAX_VAL][2];

Poi non vedo altri problemi.

UnderScore
12-11-2013, 19:33
NONO funziona...grandissimo
Ma perchè funziona così?

oregon
12-11-2013, 19:33
Ma perchè funziona così?

Cioè??

UnderScore
12-11-2013, 19:36
Perchè dichiarando l' array vals[MAX_VAL][2] funziona? Per quale motivo non funziona se scrivo vals[MAX_VAL][1]? Nell' ultimo caso l' array non ha sempre e comunque due colonne?

oregon
12-11-2013, 19:40
No !

Se scrivi [2] ha due colonne, se scrivi [1] ha una sola colonna

UnderScore
12-11-2013, 19:44
Ma in C l' indice 0 dell' array non è un elemento?
Se scrivo array[10], l' array non conterrà 11 elementi con indice da 0 a 10?

oregon
12-11-2013, 19:45
No. Conterrà 10 elementi con indice da 0 a 9

Loading