Ciao ragazzi, stavo provando a scrivere un programma che mi estrae una sequenza di numeri da un vettore e la memorizza in un altro vettore.
Il programma di per se funziona, ma non capisco perché quando stampo il vettore v1[] dopo aver effettuato l'estrazione da questo vettore di una sequenza di 2 numeri che si trovano alla posizione p = 1 e p = 2, il primo numero stampato a video, del vettore v1[] non è il numero del primo elemento del vettore stesso.
Spero possiate aiutarmi.
Sorgente:
#include <stdio.h>
void stampa (int v[], int s);
int main (int argc, char *argv[]){
int v1[9] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
int v2[2] = {};
int s2 = 2;
int s1 = 9;
int p = 1;
int i = 0, k = 0;
if (p < 0 || s2 <= 0 ){
printf("Errore estrazione\n");
}else{
printf("STAMPO PRIMA DI ESTRARRE DALLA POSIZIONE 1 DI v[] 2 NUMERI : \n");
stampa(v1,s1);
for ( i = p, k = 0; i < p + s2 + 1 ; i ++, k ++ ){
v2[k] = v1[i];
}
printf("STAMPO DOPO L\' ESTRAZIONE IL VETTORE v1[]: \n");
stampa(v1,s1);
printf("STAMPO DOPO L\' ESTRAZIONE IL VETTORE v2[]: \n");
stampa(v2,s2);
}
return 0;
}
void stampa (int v[], int s){
int j = 0;
for (j = 0; j < s; j ++ ){
printf("%d ",v[j]);
}
printf("\n");
}
Ecco l'output:
Allegati: