PDA

View Full Version : [C--urgente] Disperazione...non mi funziona la scanf per un vettore


-Ivan-
23-07-2006, 20:50
Mi vergogno anche a chiedervi una cosa del genere :D ma il seguente codice non mi funziona:

printf("Inserisci la dimensione del vettore: ");
scanf("%d", &dim);
for(i=0;i<dim;i++)
{
printf("Inserisci il %d numero del vettore: ", i);
scanf("%d", &A[i]);
}

può darsi che ci sia un errore banalissimo che non vedo perchè è tutto oggi che programmo e il cervello è bello fritto ormai, in pratica io inserisco i numeri nel vettore e poi quando li stampo con:

void stampa_vettore(int A[], int dim)
{
int i=0;

for(i=0;i<dim;i++)
{
printf("% d\t", A[i]);
}
printf("\n");
}

vedo che il primo elemento A[0] è sempre 0 qualsiasi numero io ci metta.
Assurdo non so più cosa guardare.



edit: adesso ci ho trovato un 13 dentro. :cry:

andbin
23-07-2006, 21:07
Mi sembra tutto ok ... come è dichiarato/allocato l'array 'A'??

-Ivan-
23-07-2006, 21:17
Semplicemente così:
int A[100];

non sono stato a fare allocazioni dinamiche perchè il programma esegue solo alcuni algoritmi di ordinamento e non ho problemi di spazio.
In pratica alloco un vettore di 100 e ne uso una parte che è determinata dalla variabile dim letta all'inizio del programma.

71104
23-07-2006, 23:04
void stampa_vettore(int A[], int dim)
{
int i=0;

for(i=0;i<dim;i++)
{
printf("% d\t", A[i]);
}
printf("\n");
}
sarà mica lo spazio tra '%' e 'd' nella linea evidenziata a causare non so come il problema...?

trallallero
24-07-2006, 07:28
io ho copiato pari pari quello che hai fatto tu, ho aggiunto un main con le dichiarazioni che servono e ... funziona perfettamente ... magari sbagli la chiamata a "stampa_vettore" ?


#include <stdio.h>

void stampa_vettore(int A[], int dim)
{
int i=0;

for(i=0;i<dim;i++)
{
printf("% d\t", A[i]);
}
printf("\n");
}


int main()
{
int dim, i, A[100];

printf("Inserisci la dimensione del vettore: ");
scanf("%d", &dim);

for(i=0;i<dim;i++)
{
printf("Inserisci il %d numero del vettore: ", i);
scanf("%d", &A[i]);
}

stampa_vettore(A, dim);
}