...减法、乘法和除法。两个操作数由用户从键盘上输入。

发布网友 发布时间:2024-10-24 02:17

我来回答

1个回答

热心网友 时间:2024-10-27 12:27

刚学不久,将就用吧

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");


}


声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com