I am appending the program in which I have theprobleminloopwhich
is for simple calculator. When I press the key 1-8, it runs fine, but
any other key puts the program in infiniteloop. Will you help me to
correct my program ?
Vijaykumar Dave
void menuprog();
void wait();
int i, choice, num3, num4;
float num1, num2;
void main()
{
clrscr();
menuprog();
gotoxy(30,12);
printf("Have a Nice Day");
gotoxy(30,14);
printf("- Vijaykumar Dave -");
}
void menuprog()
{
gotoxy(14,1);
printf("Program to Calculate +, -, *, /, Reminder, 1/x, Percent");
gotoxy(14,2);
printf("=======================================================");
do
{
clrscr();
gotoxy(20,4);
printf("1.Adition.");
gotoxy(20,6);
printf("2.Subtraction.");
gotoxy(20,8);
printf("3.Multiplication.");
gotoxy(20,10);
printf("4.Division.");
gotoxy(20,12);
printf("5.Modular.");
gotoxy(20,14);
printf("6.1/x.");
gotoxy(20,16);
printf("7.Percentage.");
gotoxy(20,18);
printf("8.Exit.");
gotoxy(20,20);
printf("Enter your choice [1-8] : ");
gotoxy(47,20);
scanf("%d",&choice);
if (choice<1 || choice >8)
{
textcolor(RED);
gotoxy(20,23);
cprintf(" Valid range : 1-8");
textcolor(CYAN);
// choice=0;
}
switch(choice)
{
case 1:if(choice==1) /* Add */
{
num1=get_number1();
num2=get_number2();
printf("Sum = %35.2f\n",num1+num2);
wait();
}
case 2:if(choice==2) /* Subtract */
{
num1=get_number1();
num2=get_number2();
printf("Subtraction = %35.2f\n",num1-num2);
wait();
}
case 3:if(choice==3) /* Multipy */
{
num1=get_number1();
num2=get_number2();
printf("Multiplication = %35.2f\n",num1*num2);
wait();
}
case 4:if(choice==4) /* Divide */
{
num1=get_number1();
num2=get_number2();
printf("Division = %35.2f\n",num1/num2);
wait();
}
case 5:if(choice==5) /* Reminder */
{
num2=get_number3();
printf("Modular = %f\n",num3%num4);
wait();
}
case 6:if(choice==6) /* 1/x */
{
num2=get_number2();
printf("1/x = %35.2f\n",1/num2);
// wait();
}
case 7:if(choice==7) /* Percent */
{
num1=get_number1();
num2=get_number2();
printf("Percentage = %35.2f\n",(num1/num2)*100);
// wait();
}
default: /* Default */
break;
} /* end of switch */
wait(); /* Hold the Program */
} while (choice!=8); /* End of Do - WhileLoop*/
gotoxy(11,24);
printf("Developed by : Vijaykumar Dave, IGNOU, BCA, IInd Semester");
}
int get_number1() /* Accept First Number */
{
float num1, num2;
clrscr();
gotoxy(30,12);
printf("Enter First Number");
scanf("%d",&num1);
return (num1);
}
int get_number2() /* Accept Second Number */
{
float num1, num2;
clrscr();
if (choice==6)
{
gotoxy(30,10);
printf("First Number is 1");
}
gotoxy(30,12);
printf("Enter Second Number");
scanf("%d",&num2);
return (num2);
}
int get_number3() /* Where Numbers are not to be used as Float Type */
{
int num3,num4;
clrscr();
gotoxy(30,12);
printf("Enter First Number");
scanf("%d",&num3);
gotoxy(30,14);
printf("Enter Second Number");
scanf("%d",&num3);
return (num3,num4);
}
void wait()
{
gotoxy(10,24);
printf("developed by Vijaykumar Dave... press any key to continue.
");
getch();
}
/* BEGIN new.c */
#include<stdio.h>
#include<stdlib.h>
void menuprog(void);
void wait(void);
void get_number1(double *num_1);
void get_number2(double *num_2, int choice);
void get_number3(int *num_3, int *num_4);
int main(void)
{
menuprog();
puts("Have a Nice Day - Vijaykumar Dave -");
return 0;
}
void menuprog(void)
{
double num1, num2;
int choice, num3, num4;
puts("Program to Calculate +, -, *, /, Reminder, 1/x, Percent");
puts("=======================================================");
do {
puts("1.Adition.");
puts("2.Subtraction.");
puts("3.Multiplication.");
puts("4.Division.");
puts("5.Modular.");
puts("6.1/x.");
puts("7.Percentage.");
puts("8.Exit.");
puts("Enter your choice [1-8] : ");
scanf("%d", &choice);
switch (choice) {
case 1:
get_number1(&num1);
get_number2(&num2, choice);
printf("Sum = %35.2f\n", num1 + num2);
break;
case 2:
get_number1(&num1);
get_number2(&num2, choice);
printf("Subtraction = %35.2f\n",num1-num2);
break;
case 3:
get_number1(&num1);
get_number2(&num2, choice);
printf("Multiplication = %35.2f\n",num1*num2);
break;
case 4:
get_number1(&num1);
get_number2(&num2, choice);
printf("Division = %35.2f\n",num1/num2);
break;
case 5:
get_number3(&num3, &num4);
printf("Modular = %d\n", num3 % num4);
break;
case 6:
get_number2(&num2, choice);
printf("1/x = %35.2f\n",1 / num2);
break;
case 7:
get_number1(&num1);
get_number2(&num2, choice);
printf("Percentage = %35.2f\n",(num1/num2)*100);
break;
case 8:
break;
default:
puts(" Valid range : 1-8");
break;
}
} while (choice != 8);
puts("Developed by : Vijaykumar Dave, IGNOU, BCA, IInd Semester");
}
void get_number1(double *num_1)
{
puts("Enter First Number");
if (scanf("%lf", num_1) != 1) {
puts("forget about it.");
exit(EXIT_SUCCESS);
}
}
void get_number2(double *num_2, int choice)
{
if (choice == 6) {
puts("First Number is 1");
}
puts("Enter Second Number");
if (scanf("%lf", num_2) != 1) {
puts("forget about it.");
exit(EXIT_SUCCESS);
}
}
void get_number3(int *num_3, int *num_4)
{
puts("Enter First Number");
if (scanf("%d", num_3) != 1) {
puts("forget about it.");
exit(EXIT_SUCCESS);
}
puts("Enter Second Number");
if (scanf("%d", num_4) != 1) {
puts("forget about it.");
exit(EXIT_SUCCESS);
}
}
/* END new.c */