## atman

Hey guys!

I'm trying to calculate the average for student marks using pretest loop, and for some reason i get the wrong result, even though the code looks proper to me.,
there are 7 questions all of them totaling 100%, i haveto return average mark
i HAVETO use pretest loop.

Any help would be greatly appreciated!!
here comes the code! Thanx

{
double stdmark;
int i;
int total=0;
int average;

for(i=1;i<=7;i++)
{
//        printf("\n");
printf("Enter Mark#%d:",i);
scanf("%lf", &stdmark);
total=total+stdmark;
}

average=total/i;

return average;
}

## ArkM 1,090

How funny: you get double input then use INTEGER arithmetics with int variables...
That's all, guy...

## atman

How funny: you get double input then use INTEGER arithmetics with int variables...
That's all, guy...

Thanx a lot for a tip, i changed everything to double except i, cuz if i change i to double the "Enter Mark#0" occurs on every entry, but still the result is abit incorrect, it came closer though, for example if im inputing 4 for every 7 marks i get the result of 3.5 instead of 4

{
double stdmark;
int i;
double total=0;
double average;

for(i=1;i<8;i++)
{
//        printf("\n");
printf("Enter Mark#%d:",i);
scanf("%lf", &stdmark);
total=total+stdmark;
}

average=total/i;

return average;
}

Thanx!

## Aia 1,977

Before average=total/i; just add printf("Tell me what's in i: %d\n", i); and perhaps you'll find out the problem.

## atman

Before average=total/i; just add printf("Tell me what's in i: %d\n", i); and perhaps you'll find out the problem.

thanx a lot it sais 8, but when i try to set it <= 7 its still 8.,
any suggestions?

## Aia 1,977

thanx a lot it sais 8, but when i try to set it <= 7 its still 8.,
any suggestions?

Yes. Change to for(i=0;i<7;i++) and add to printf("Enter Mark#%d:",i + 1);

## atman

Yes. Change to for(i=0;i<7;i++) and add to printf("Enter Mark#%d:",i + 1);

It works great, but im trying to understand the logic behind it,once we start the loop, i=0, and then in the first pass in the condition it adds 1 to it so i=1, then after printf it adds again? making it 2 still going through the first pass???