0
How to write a C code to copy the contents of 2 arrays into a third one in a zigzag order given that array sizes are not known?
I tried this, but didn't work, any help? #include <stdio.h> void zig_order(int arr1_size, int *arr1, int arr2_size, int *arr2) { int arr_zig_size = arr1_size + arr2_size; int arr_zig[arr_zig_size]; int i, j, k; for(k=0;k<=arr_zig_size;k++) { for(i=0 ; i<=arr1_size; i++) { for(j=0; j<=arr2_size; j++) { arr_zig[k]=arr1[i]; arr_zig[k+1]=arr2[j]; } } printf("arr_zig=%d \n", *arr_zig); } void main() { int arr1[]={1,3,1,5,3}, arr2[]={4,2,6}; zig_order(5, arr1, 3, arr2); return 0; }
5 Answers
+ 5
Yes you can do that but the variable should be integer then
+ 3
when you say zigzag you mean
arr1 = 1,2,3,4
arr2 = 5,6,7,8
newarr = 1,5,2,6,3,7,4,8
right, this is what you want as output?
+ 3
Yes, you can give array size like that if you are using C99 standards to Compile your code this type of arrays are called variable length arrays. and the size must be unsigned int.
+ 2
Check this out i have modified your code.
https://code.sololearn.com/cWkwCVT2lLac
0
yes that,s what I mean! thank you so much, but is it right to add variable as array size like that?
int arr_zig[arr_zig_size];