I am trying to code a math tutor program that will have random numbers generated. Any suggestions would be greatful.
Output suppose to be:
I am having problems with this code. I keep switching it around and can not seem to get it right. This is what output suppose to be:
Menu of Operations
1. Addition
2. Subtraction
3. Multiplication
4. Quit.
Enter the number of the operation to try (1-4)? 2
What is 6 - 8 ? 2
No, the correct answer is: -2
Menu of Operations
1. Addition
2. Subtraction
3. Multiplication
4. Quit.
Enter the number of the operation to try (1-4)? 3
What is 3 x 4 ? 12
Yes, that is correct. Good job!
Menu of Operations
1. Addition
2. Subtraction
3. Multiplication
4. Quit.
Enter the number of the operation to try (1-4)? 6
(BEEP) Input value is out of range.
Enter the number of the operation to try (1-4)? 4
Program Complete
#include <stdio.h>
#include <stdlib.h>
#define SENT 4 //"Quit" menu choice
/* Function Prototypes */
void DisplayMenu (void);
void GetMenuChoice (void);
void Gen2Rand (int*r1, int*r2);
void DrillOneProb (int*c, int*r1, int*r2);
/*============Mainline Procedures===============*/
int main (void);
int c; //Menu Choice (1-4)
int r1, //First Random Integer: 2-12 inclusive
r2; //Second Randon Integer: 2-12 inclusive
/*===========CHILD FUNCTIONS===============*/
/* Display Title and Menu */
void DisplayMenu (void)
{
printf("MENU OF OPERATIONS\n");
printf("1. Addition.\n");
printf("2. Subtraction.\n");
printf("3. Multiplication.\n");
printf("4. Quit.\n\n");
}
/* Get Menu Choice */
void GetMenuChoice (void)
{
int c;
printf ("Enter the number of the operation to try (1-4):\n");
scanf ("%d", &c);
while
(c<1 || c>SENT)
printf("\aInput value is out of range.\n");
}
/* Generate and return 2 integers between 2-12 inclusive */
void Gen2Rand (int *r1p, int *r2p)
{
int c;
c=0;
if (c>=1 && c<SENT)
int r1; //First random number
int r2; //Second random number
r1 = 2 + rand() %11;
r2 = 2 + rand() %11;
*r1p = r1;
*r2p = r2;
printf("Program complete\n");
}
/* Display two random numbers and ask user what the answer would be after the chosen operation*/
void DrillOneProb (int*c, int*r1, int*r2)
{
int CorAns, //Correct Answer
Reply; // Users Reply
printf("\nWhat is %d",*r1);
scanf("%d", r1);
*r1=2 + rand () % 11;
switch (c)
{
case '1':
printf("+");
CorAns = *r1 + *r2;
break;
case '2':
printf("-");
CorAns = r1 - r2;
break;
case '3':
printf("x");
CorAns = r1 * r2;
break;
}
printf("%d ? %d\n", r2, Reply);
if
Reply == CorAns
{
printf("Yes, that is correct. Good Job!");
}
else
{ printf("No, the correct answer is: %d", CorAns);
printf("\n\n");
}
return (0);
}