As title states the code compiles and outputs in the GCC just fine, I want to step by step follow the code in visual so I can make sure I fully understand how things are working but it throws "expression must have a constant value" for the int even[len_sub_arr]; int
odd[len_sub_arr]; lines.
#include <stdio.h>
void print_arr(int len, int arr[], char name[]) {
//print number array
printf("Listing of %s below: \n", name);
for(int i=0; i < len; i++) {
printf("%s[%d] = %d\n", name, i, arr[i]);
}
printf("\n");
}
int main(void) {
//initialize and print lengths
int arr_nums[] = {12, 75, 23, 43, 94, 82, 37, 6, 70, 59};
int len_arr = sizeof(arr_nums) / sizeof(int);
printf("Length of arr_nums is %d\n", len_arr);
int len_sub_arr = len_arr / 2;
**int even[len_sub_arr];
int odd[len_sub_arr];**
printf("Therefore, the length of the even and odd arrays will be = %d\n\n", len_sub_arr);
//print original array
print_arr(len_arr, arr_nums, "arr_nums");
//keep track of even and odd indices
int even_idx = 0;
int odd_idx = 0;
//sort original data into even and odd arrays
for(int i=0; i< len_arr; i++) {
if(arr_nums[i] % 2 == 0) {
even[even_idx] = arr_nums[i];
even_idx++;
}
else {
odd[odd_idx] = arr_nums[i];
odd_idx++;
}
}
//print even and odd arrays
print_arr(len_sub_arr, even, "even");
print_arr(len_sub_arr, odd, "odd");
return 0;
}
I keep running into the discrepancies between GCC and visual studios seems to cause me nothing but problems when I feel like something is about to click for me... should I as a beginner continue using the visual studios suite or is there something else you all would recommend to me to use?