Jan 28

vett (updated)

Category: tmrc

OK, non uscirò più di casa fin quando qualcuno non mi spiega questo:

#include <stdio.h>
main()
{
int n, i, vetta[n], vettb[n], vettc[n];
printf("Immetti la lunghezza dei vettori: ");
scanf("%d", &n);

// immssione valori vettore A e B
for (i=0; i<n; i++) {
printf("Immetti il valore del vettore A posizione [%d]: ", i);
scanf("%d", &vetta[i]);
printf("Immetti il valore del vettore B posizione [%d]: ", i);
scanf("%d", &vettb[i]);
}

// stampa vettore A
for (i=0; i<n; i++)
printf("vetta[%d]=%d ", i, vetta[i]);
printf("\n");
// stampa vettore B
for (i=0; i<n; i++)
printf("vettb[%d]=%d ", i, vettb[i]);
printf("\n");
}

 

stesso codice, compilato su due Linux diversi, risultato A:

sugo@vm:~/c$ ./esercizio7.1
Immetti la lunghezza dei vettori: 5
Immetti il valore del vettore A posizione [0]: 0
Immetti il valore del vettore B posizione [0]: 1
Immetti il valore del vettore A posizione [1]: 2
Immetti il valore del vettore B posizione [1]: 3
Immetti il valore del vettore A posizione [2]: 4
Immetti il valore del vettore B posizione [2]: 5
Immetti il valore del vettore A posizione [3]: 6
Immetti il valore del vettore B posizione [3]: 7
Immetti il valore del vettore A posizione [4]: 8
Immetti il valore del vettore B posizione [4]: 9
vetta[0]=9 vetta[1]=2 vetta[2]=4 vetta[3]=6 vetta[4]=8
vettb[0]=1 vettb[1]=3 vettb[2]=5 vettb[3]=7 vettb[4]=9

 

risultato B:

 

*siberia /home/sugo:==> ./es
Immetti la lunghezza dei vettori: 5
Immetti il valore del vettore A posizione [0]: 0
Immetti il valore del vettore B posizione [0]: 1
Immetti il valore del vettore A posizione [1]: 2
Immetti il valore del vettore B posizione [1]: 3
Immetti il valore del vettore A posizione [2]: 4
Immetti il valore del vettore B posizione [2]: 5
Immetti il valore del vettore A posizione [3]: 6
Immetti il valore del vettore B posizione [3]: 7
Immetti il valore del vettore A posizione [4]: 8
Immetti il valore del vettore B posizione [4]: 9
vetta[0]=0 vetta[1]=2 vetta[2]=4 vetta[3]=6 vetta[4]=8
vettb[0]=1 vettb[1]=3 vettb[2]=5 vettb[3]=7 vettb[4]=9

 

perché nel primo caso (risultato A) vetta[0] = 9?
da capire :))

 

————

credo di aver capito.

forse il problema è nella dichiarazione dei vettori. se al posto di:

int n, i, vetta[n], vettb[n], vettc[n];

metto:

int n, i, vetta[10], vettb[10], vettc[10];

 

funziona come ci si aspetta.

 

per una sessione di debug carina vedere qui 🙂

No comments

No Comments

Leave a comment