Hello,
I'm having an issure with this section of code. It keeps crashing after I enter the employee number. I have the sense that the value isn't being assigned to the variable FindNumber, but I'm unsure. If anyone can offer any help on this matter, it would be greatly appreciated.
Thanks,
Vireyda
Code:
void ChangeCosts(struct TravelCosts expenses[], int num)
{
int i, FindNumber;
char update;
printf("Enter Employee number to find record: ");
fflush(stdin);
scanf("%d", FindNumber);
for(i=0; i<num; ++i)
{
if(FindNumber==expenses[i].emp_num)
{
printf("What would you like to update?");
printf("Distance Traveled\t- D or d\nMileage Rate\t- R or r\nMeal Costs\t- M or m\nQuit to Main Menu\t- Q or q");
fflush(stdin);
scanf("%c", update);
switch(update)
{case 'D': case 'd':
do
{
printf("\nPlease enter new distance traveled(400km max): ");
scanf("%f", expenses[i].distance_traveled);
if(expenses[i].distance_traveled>400)
printf("\nThat distance exceeds the 400km maximum. Please try again.\n");
}while(expenses[i].distance_traveled>400);
break;
case 'R': case 'r':
do
{
printf("\nPlease enter new Mileage Rate(From $0.30 to $0.40): $");
scanf("%f", expenses[i].mileage_rate);
if(expenses[i].mileage_rate<.30&&expenses[i].mileage_rate>.40)
printf("\nThat mileage rate does not fall between $0.30 and $0.40. Please try again.\n");
}while(expenses[i].mileage_rate<.30&&expenses[i].mileage_rate>.40);
break;
case 'M': case 'm':
do
{
printf("\nPlease enter new Meal Costs($25.00 max): $");
scanf("%f", &expenses[i].meals);
if(expenses[i].meals>25)
printf("That amount exceed the $25.00 maximum. Please try again.\n");
}while(expenses[i].meals>25);
break;
case 'Q': case 'q':
break;
default:
printf("\nThat selection is invaild. Please try again.\n");
}//end switch
}//end if
else
printf("\nThere is no record of that employee number in the database.\n");
}//end for
}//end ChangeCosts