I am trying to get my program to check the validity of a entry. When the user enteres a character rather than a float, I want the program to ask them to check their entry and enter it again. I have tried the getchar(), and isdigit commands, but can't figure it out. I am completely new to this. Right now when the user enters a character rather than a float, it throws the program into a continuous loop.


Code:
#include <system.h>
#include <stdio.h>
#include <ctype.h>
main()
{

//   Variable declarations and initializations
	int iResponse = 0;
	float fDel_Mar_Tax = 7.25;
	float fEncinitas_Tax = 7.5;
	float fLa_Jolla_Tax = 7.75;
	float fPurchase_Amount = 0.0;
	
//   Program Header
	printf("\n\t\t             Tax Calculator 2 by Aleksandr Babich\n\n\n");

//   Enter purchase amount and verify purchase amount
	do { // do-while loop start
	printf("\n\nEnter the total purchase amount: $");
	scanf("%f", &fPurchase_Amount);	
	if (fPurchase_Amount <= 0.0)
		printf("\nInvalid entry, try again");
		printf("invalid");
	} //end do-while loop	
	while (fPurchase_Amount <= 0.0);
	printf("\n\nTotal purchase is $ %5.2f", fPurchase_Amount);
	

	do { //start of do-while loop

// Store selection
	printf("\n\n1\tDel Mar\n");
	printf("2\tEncinitas\n");
	printf("3\tLa Jolla\n");
	printf("\nPlease select your shopping location (1-3): ");
	scanf("%d", &iResponse);
	
// User Store selection validity
	if (iResponse <= 0 || iResponse >= 4) 
		printf("\n\nInvalid entry - Please try again\n\n");
	else
		printf("\n\n\t\t\t\t   TOTALS");
	


	
	switch (iResponse){ 

	case 1:
	printf("\n ------------------------------------------------------------------------------\n");
	printf("\n\t\tTotal purchase amoune is $%5.2f\n",fPurchase_Amount);
	printf("\n\t\tThe total tax on your purchaes is $%5.2f\n", fDel_Mar_Tax/100.0 * fPurchase_Amount);
	printf("\n\t\tYour total amount due is $%5.2f\n", fPurchase_Amount + (fDel_Mar_Tax/100.0 * fPurchase_Amount));
	printf("\n\t    Thank you for shopping at Kuddler Fine Foods Del Mar");
	printf("\n ------------------------------------------------------------------------------\n");
	break;
	case 2:
	printf("\n ------------------------------------------------------------------------------\n");
	printf("\n\t\tTotal purchase amoune is $%5.2f\n",fPurchase_Amount);
	printf("\n\t\tThe total tax on your purchase is $%5.2f\n", fEncinitas_Tax/100.0 * fPurchase_Amount);
	printf("\n\t\tYour total amount due is $%5.2f\n", fPurchase_Amount + (fEncinitas_Tax/100.0 * fPurchase_Amount));
	printf("\n\t    Thank you for shopping at Kuddler Fine Foods Encinitas");
	printf("\n ------------------------------------------------------------------------------\n");
	break;
	case 3:
	printf("\n ------------------------------------------------------------------------------\n");
	printf("\n\t\tTotal purchase amoune is $%5.2f\n",fPurchase_Amount);
	printf("\n\t\tThe total tax on your purchase is $%5.2f\n", fLa_Jolla_Tax/100.0 * fPurchase_Amount);
	printf("\n\t\tYour total amount due is $%5.2f\n", fPurchase_Amount + (fLa_Jolla_Tax/100.0 * fPurchase_Amount));
	printf("\n\t    Thank you for shopping at Kuddler Fine Foods La Jolla");
	printf("\n ------------------------------------------------------------------------------\n\n\n\n");
	
	} //end switch
	
	} while (iResponse <= 0 || iResponse >= 4); 


	
//Initiate a stop and wait for user input to continue
	printf("\nPress any key to continue...\n");
	getch();


}//end main
any ideas???