Problem: while running this code, I am taking 10 inputs but this program storing 9 elements ( list[8] ) initially. Then pressing a random number and ENTER, this program storing the last index( list[10] ) and finally giving me the expected output.
But if I remove a space from the line of code(after %f) : scanf("%f ",&list[i]);
then this code runs perfectly.
As a beginner, I badly want to know why/how does a single space after %f make this code different?
Please run this code by yourself, I think you will be more clear by seeing the output.
/******************************************************************************
In this program, I will read 10 values(Positive,negative and float) and then
print only Positive Integer(s)
Test Value/Input:
1 2.3 4.5 -10 6.1 7 9.0 -4 -11 44
*******************************************************************************/
#include <stdio.h>
#include<math.h>
int main()
{
float y=1,list[10];
for(int i=0;i<10;i++)
{
scanf("%f ",&list[i]); //here is the PROBLEM!
printf("list[%d]: %.2f\n",i,list[i]);
}
printf("Positive integers:\n");
for(int i=0;i<10;i++)
{
if(list[i]>0 && remainder(list[i],y)==0 )
// if, X MOD 1 == 0 then X is an Integer
{
printf("%.0f ",list[i]);
}
}
return 0;
}