额,问题比较多
double take(int a)在main之前没有声明
main函数中是void face();这个是函数声明,调用应该是face();
printf("除数不能为0!\n"); 后面应该加一句break,或者return否者会贯穿到其他case分支中
result = (int)b%(int)c;
后面加 个return result;
最后少了一个return 和}
附上修改后的代码
#include
double take();
void face();
double take(int a);
int main()
{
int a;
do
{
face();
printf("请选择您需要的运算:");
scanf("%d",&a);
printf("运算结果为:%f",take(a));
}while(a=0);
printf("已经退出计算程序!");
return 0;
}
void face()
{
printf("*------------------*\n");
printf("| 小型计算器 |\n");
printf("*------------------*\n");
printf("| 1.加法 |\n");
printf("| 2.减法 |\n");
printf("| 3.乘法 |\n");
printf("| 4.除法 |\n");
printf("| 5.求余 |\n");
printf("| 0.退出 |\n");
printf("*------------------*\n");
printf("| 请输入1-5进行选择|\n");
printf("*------------------*\n");
}
double take(int a)
{
double b,c,result=0;
switch(a)
{
case 1:
printf("请输入两个加数:");
scanf("%lf%lf",&b,&c);
result = b + c;
return result;
case 2:
printf("请输入被减数和减数:");
scanf("%lf%lf",&b,&c);
result = b - c;
return result;
case 3:
printf("请输入两个乘数:");
scanf("%lf%lf",&b,&c);
result = b*c;
return result;
case 4:
printf("请输入被除数和除数:");
scanf("%lf%lf",&b,&c);
if(c==0)
{
printf("除数不能为0!\n");
return result;
}
else
{
result= b/c;
return result;
}
case 5:
printf("请输入两个整数:");
scanf("%lf%lf",&b,&c);
if((int)c==0)
{
printf("除数不能为0!\n");
}
else
{
result = (int)b%(int)c;
return result;
}
case 0: result=0;
return result;
default : printf("输入错误!");
}
return result;
}
PS:你的代码实在不优雅,我本来想修改的,又怕你不认识了,所以还是在你的代码基础上改了
楼下的和我探讨了!他的答案是中肯的!我敬佩不已!