How about using abs to get the absolute value? Perhaps post an attempt.
Dave Sinkula
long time no c
5,058 posts since Apr 2004
Reputation Points: 2,780
Solved Threads: 314
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
unsigned long Isum = 0, Qsum = 0;
int buffer[1024];
size_t i;
/*
* Fill the buffer with values between -100 and 100
* (you can probably skip this).
*/
srand(time(NULL));
for ( i = 0; i < sizeof buffer / sizeof *buffer; ++i )
{
buffer[i] = rand() % 200 - 100;
}
/*
* Calculate sums.
*/
for ( i = 0; i < sizeof buffer / sizeof *buffer; ++i )
{
if ( i % 2 ) /* odd */
{
Qsum += abs(buffer[i]);
}
else /* even */
{
Isum += abs(buffer[i]);
}
}
printf("Isum = %lu, Qsum = %lu\n", Isum, Qsum);
return 0;
}
/* my output
Isum = 26194, Qsum = 24823
*/
Dave Sinkula
long time no c
5,058 posts since Apr 2004
Reputation Points: 2,780
Solved Threads: 314