...减法、乘法和除法。两个操作数由用户从键盘上输入。
发布网友
发布时间:2024-10-24 02:17
我来回答
共1个回答
热心网友
时间:2024-10-27 12:28
刚学不久,将就用吧
win8.1下用gcc编译通过,运行没问题
#include <stdio.h>
void getOption(int *popt);
void getNumbers(double *pa, double *pb, int option);
double calc(double a,double b, int option, double *presult);
void printResult(double a, double b, int option, double result);
int main()
{
int option = 0;
double a = 0.0;
double b = 0.0;
double result = 0.0;
do
{
getOption (&option); //显示菜单,读选项
if (option != 5)
{
getNumbers(&a, &b, option);//读两个操作数,若为除法,判别除数不为零若除数为零,要求用户重新输入
calc(a, b ,option, &result);// 完成运算,并返回结果
printResult(a, b, option, result);// 输出表达式及结果
}
} while (option!=5);
return 0;
}
void getOption(int *popt)//显示菜单,读选项
{
printf("1、加法 2、减法 3、乘法 4、除法 5、退出\n请输入菜单项:");
while(scanf("%d",popt)!=1)fflush(stdin);//防止误输入程序崩溃
fflush(stdin);
while(*popt>5 || *popt<1)
{
printf("请输入1~5的数字,请重新输入:");
while(scanf("%d",popt)!=1)fflush(stdin);
fflush(stdin);
}
}
void getNumbers(double *pa, double *pb, int option)//读两个操作数
{
printf("请输入两个操作数:");
scanf("%lf %lf",pa,pb);
if(option == 4)//若为除法,判别除数不为零若除数为零,要求用户重新输入
while(*pb == 0)
{
printf("除数不能为0,请重新输入除数:");
scanf("%lf",pb);
}
}
double calc(double a, double b, int option, double *presult)// 完成运算,并返回结果
{
switch(option)
{
case 1:
*presult = a + b;
break;
case 2:
*presult = a - b;
break;
case 3:
*presult = a * b;
break;
case 4:
*presult = a / b;
break;
default:
break;
}
return *presult;
}
void printResult(double a, double b, int option, double result)// 输出表达式及结果
{
switch(option)
{
case 1:
printf("%lf + %lf = %lf\n",a,b,result);
break;
case 2:
printf("%lf - %lf = %lf\n",a,b,result);
break;
case 3:
printf("%lf × %lf = %lf\n",a,b,result);
break;
case 4:
printf("%lf ÷ %lf = %lf\n",a,b,result);
break;
default:
break;
}
printf("\n");
}