使用 switch 语句,创建一个计算程序
using switch statement, to create a program for calculation
在开发计算器的程序中不得不面对一些问题,我尝试在 switch 语句之前进行数学运算的计算。输入数值和数学运算后打印结果只提示invalid entry on my default statement
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
// declare and initialise working storage
char function;
int num1, num2, sum, sub, multi, div, remainder;
// prompt user to enter 2 number
printf("Enter numbers and function: ");
scanf("%d%c%d", &num1, &function, &num2);
// calculation
sum = num1 + num2;
sub = num1 - num2;
multi = num1 * num2;
div = num1 / num2;
remainder = num1 % num2;
// print the result
switch(function)
{
case '+':
printf("The sum is %d\n", sum);
break;
case '-':
printf("The subtraction is %d\n", sub);
break;
case '*':
printf("The multiplication is %d\n", multi);
break;
case '/':
if(num2 ==0)
{
printf("Cannot divide by 0!\n");
}
else
{
printf("The div is %d\n", div);
}
break;
case '%':
if(num2 ==0)
{
printf("Cannot divide by 0!\n");
}
else
{
printf("The remainder is %d\n", remainder);
}
break;
default:
printf("Invalid Entry!!!!!\n");
break;
}
return 0;
}
%c 读取一个字符。空格和换行符也是字符。
%d 仅等待 int 输入。
这就是为什么每次您想提供不同的数字时,您都必须按 return 或 space 让程序读取下一个 int 输入。
因此,如果您选择这样输入:
1 + 3
程序理解:
&num1 = 1 , &num2 = 3, &function = (space)
如果您选择这样输入字符:
1+3(return)
它将 运行 正确。但这不是一个友好的计算器。
您可以做的是:
printf("Enter numbers : ");
scanf("%d%d", &num1, &num2);// give 5(space)2 or 5(return)2
scanf(%c,&enter); // reads the newline
printf("Enter function: ");
scanf("%c",&function);
在开发计算器的程序中不得不面对一些问题,我尝试在 switch 语句之前进行数学运算的计算。输入数值和数学运算后打印结果只提示invalid entry on my default statement
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
// declare and initialise working storage
char function;
int num1, num2, sum, sub, multi, div, remainder;
// prompt user to enter 2 number
printf("Enter numbers and function: ");
scanf("%d%c%d", &num1, &function, &num2);
// calculation
sum = num1 + num2;
sub = num1 - num2;
multi = num1 * num2;
div = num1 / num2;
remainder = num1 % num2;
// print the result
switch(function)
{
case '+':
printf("The sum is %d\n", sum);
break;
case '-':
printf("The subtraction is %d\n", sub);
break;
case '*':
printf("The multiplication is %d\n", multi);
break;
case '/':
if(num2 ==0)
{
printf("Cannot divide by 0!\n");
}
else
{
printf("The div is %d\n", div);
}
break;
case '%':
if(num2 ==0)
{
printf("Cannot divide by 0!\n");
}
else
{
printf("The remainder is %d\n", remainder);
}
break;
default:
printf("Invalid Entry!!!!!\n");
break;
}
return 0;
}
%c 读取一个字符。空格和换行符也是字符。 %d 仅等待 int 输入。 这就是为什么每次您想提供不同的数字时,您都必须按 return 或 space 让程序读取下一个 int 输入。 因此,如果您选择这样输入:
1 + 3
程序理解:
&num1 = 1 , &num2 = 3, &function = (space)
如果您选择这样输入字符:
1+3(return)
它将 运行 正确。但这不是一个友好的计算器。
您可以做的是:
printf("Enter numbers : ");
scanf("%d%d", &num1, &num2);// give 5(space)2 or 5(return)2
scanf(%c,&enter); // reads the newline
printf("Enter function: ");
scanf("%c",&function);