Reputation: 33
I am new to c++ I tried to create a simple calculator. I am not sure why but when I run this code, it prints weird results, for example: 15 * 5 = 753
int a;
int b;
char param;
printf("Enter Two numbers:\n");
scanf_s("%d %d", &a, &b);
printf("%d %d\n", a, b);
printf("Enter mathematical operator *-/+\n");
int result;
scanf_s(" %c", ¶m);
switch (param)
{
case ('+'):
result = a + b;
printf("%d", result);
case ('-'):
result = a - b;
printf("%d", result);
case ('*'):
result = a * b;
printf("%d", result);
case ('/'):
result = a / b;
printf("%d", result);
}
Upvotes: 2
Views: 133
Reputation: 989
There is no break between cases which explain that your example enter in case '*' print 75 (15 * 5) as there is no break continue to '/' and print 3 (15 / 5). And that's what you got 753.
switch (param)
{
case ('+'):
result = a + b;
printf("%d", result);
break;
case ('-'):
result = a - b;
printf("%d", result);
break;
case ('*'):
result = a * b;
printf("%d", result);
break;
case ('/'):
result = a / b;
printf("%d", result);
break;
}
Upvotes: 4
Reputation: 2941
Remember to include break;
statement after each case
int a;
int b;
char param;
printf("Enter Two numbers:\n");
scanf_s("%d %d", &a, &b);
printf("%d %d\n", a, b);
printf("Enter mathematical operator *-/+\n");
int result;
scanf_s(" %c", ¶m);
switch (param)
{
case ('+'):
result = a + b;
printf("%d", result);
break;
case ('-'):
result = a - b;
printf("%d", result);
break;
case ('*'):
result = a * b;
printf("%d", result);
break;
case ('/'):
result = a / b;
printf("%d\n", result);
break;
}
Upvotes: 2