Reputation: 23
My conditions are as follows :
Repeat the loop until a correct value is entered.
#define _CRT_SECURE_NO_WARNINGS
#define minINCOME 500.00
#define maxINCOME 400000.00
#include <stdio.h>
int main(void)
{
float userIncome ;
printf("+--------------------------+\n"
"+ Wish List Forecaster |\n"
"+--------------------------+\n");
do
{
printf("Enter your monthly NET income: $");
scanf(" %.2lf", &userIncome);
if (userIncome < 500)
{
printf("ERROR: You must have a consistent monthly income of at least $500.00\n");
}
if (userIncome > 40000)
{
printf("ERROR: Liar! I'll believe you if you enter a value no more than $400000.00\n");
}
} while (userIncome >= maxINCOME && userIncome <= minINCOME);
return 0;
}
Upvotes: 0
Views: 64
Reputation: 310920
For starters this named constant
#define maxINCOME 400000.00
differs from the constant used in this if statement
if (userIncome > 40000)
and in this condition
while (userIncome >= maxINCOME && userIncome <= minINCOME);
Secondly for object of the type float like this
float userIncome ;
you need to use the conversion specifier f
instead of lf
scanf(" %f", &userIncome);
And the condition should be written like
while (userIncome >= maxINCOME || userIncome <= minINCOME);
And in if statements you need to use the defined named constants as for example
if (userIncome >= maxINCOME)
^^
Upvotes: 2