Scusate per il titolo un po' confusionario
La traccia di quel che sto scrivendo è questa:
Scrivere una funzione che prende in input due array di dimensioni n ed m, rispettivamente, e
restituisce un array composto dalla concatenazione dei due array in modo tale che nelle posizioni
dispari sono contenuti i valori del primo array, e nelle posizioni pari quelle del secondo.
Ed io ho scritto questo:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(){
int a[50], b[50], c[100], i_a=0, i_b=0, i_c=0, n, m;
printf("Size primo array: ");
scanf("%d",&n);
for(i_a=0; i_a<n; i_a++){
printf("Valore %d-simo di a: ",i_a);
scanf("%d",&a[i_a]);
}
printf("\n");
printf("Size secondo array ");
scanf("%d",&m);
for(i_b=0; i_b<m; i_b++){
printf("Valore %d-simo di b: ",i_b);
scanf("%d",&b[i_b]);
}
printf("\n");
while(i_a < n && i_b < m){
if(i_c%2 ==0) c[i_c++] = b[i_b++];
else c[i_c++] = a[i_a++];}
while(i_a < n) c[i_c++] = a[i_a++];
while(i_b < m) c[i_c++] = b[i_b++];
printf("\n");
for(i_c=0; i_c<n+m; i_c++){
printf("Valore %d-simo di c: %d\n",i_c, c[i_c]);
}
}
Da ancora poco esperto in materia credo che l'errore sia nella stampa del terzo array.
Cos'ho sbagliato?
Vi ringrazio in anticipo!