Hello, newbie here.
Just started euler problems to get better acquainted with C. The first problem is this-
So here is my program-If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23.
Find the sum of all the multiples of 3 or 5 below 1000.
This compiles with an error-Code:#include <stdio.h> int main() { int _MAX = 1000; int nums[_MAX] = {0}; int checkers[] = {3,5}; int k = 0; int len = sizeof(checkers)/sizeof(int); int sum = 0; int checker; for(k = 0; k < len; k++) { checker = checkers[k]; sum = 0; while(sum+checker <= _MAX) { sum += checker; nums[sum] = 1; } } sum = 0; for(k = 0; k < _MAX; k++) { if(nums[k]) sum += k; } printf("%d", sum); getchar(); return 0; }
main.c(6): error C2057: expected constant expression
main.c(6): error C2466: cannot allocate an array of constant size 0
which is line
If I change _MAX here to 1000 everything works and I get the right answer. What is wrong and how do I fix this? I tried google but got more confused.Code:int nums[_MAX] = {0};



1Likes
LinkBack URL
About LinkBacks


