My solution to "That's odd" doesn't work, and I dont'understand why. The #4 case remains always wrong.[SOLVED] | SoloLearn: Learn to code for FREE!

0

My solution to "That's odd" doesn't work, and I dont'understand why. The #4 case remains always wrong.[SOLVED]

#include <iostream> using namespace std; int main() { int N, *p, i, out=0; cin >> N;//how many numbers? if(N<=0) return (-1); p = (int *)malloc(sizeof(int)); for(i=0;i<N;i++) { cin>>p[i]; if(p[i]%2==0) out+=p[i]; } cout << out; return 0; }

4/5/2020 10:27:12 PM

Federico Di Stefano

2 Answers

New Answer

+1

Resolved. I forgot to multiply the memory in the pointer to N. I had to do: p = (int *)malloc(N*sizeof(int));

+1

p[i] % 2 == 0 -> here you check if a number is even (divisible by 2) But you need to add odd numbers. p[i] % 2 != 0 or p[i] % 2 == 1