When you use floats/doubles, there's an error. In this case, although the number appears as 1.00000 in printf, it's just rounded from 0.99999999 (at least on my computer, I believe in other machines, it may be rounded from 1.0000000001, for example).
You can't really use it to compare.
You can, however, use the math library and round the double, so that it becomes an exact number. I'd recommend you round it to a long, with the function lround().
The code would stay like this:
Code:
#include <stdio.h>
#include <math.h>
int main()
{
double temp;
temp = 0;
temp = temp + .6;
temp = temp + .3;
temp = temp + .1;
printf("%lf\n", temp);
if(lround(temp) != 1)
{
printf("Improper matrix! Please use another.\n");
}
return(0);
}