c语言 四则运算问题,检查不到错误,运行的时候就提示是不是调试!帮忙改一下
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言 四则运算问题,检查不到错误,运行的时候就提示是不是调试!帮忙改一下相关的知识,希望对你有一定的参考价值。
#include <stdio.h>
void main()
double a,b,c,x,y,z;
char e,f;
printf("please input :\n");
scanf("%lf%c%lf%c%lf",a,e,b,f,c);
if((f==('*'||'/')) && e==(('*'||'/')))
switch (e)
case '*':x=a*b;break;
case '/':x=a/b;break;
switch (f)
case '*':z=x*c;break;
case '/':z=x/c;break;
printf("counter=%lf\n",z);
else if((f==('+'||'-')) && e==(('+'||'-')))
switch (e)
case '+':x=a+b;break;
case '-':x=a-b;break;
switch (f)
case '+':z=x+c;break;
case '-':z=x-c;break;
printf("counter=%lf\n",z);
else if ((f==('*'||'/')) && e==(('+'||'-')))
switch (f)
case '*':y=x*c;break;
case '/':y=x/c;break;
switch (e)
case '+':z=a+y;break;
case '-':z=a-y;break;
printf("counter=%lf\n",z);
程序修改如下:
#include <stdio.h>
void main()
double a,b,c,x,y,z;
char e,f;
printf("please input :\n");
scanf("%lf%c%lf%c%lf%lf",&a,&e,&b,&f,&c,&x);//加上“&”,x应初始化
if((f==('*'||'/')) && e==(('*'||'/')))
switch (e)
case '*':x=a*b;break;
case '/':x=a/b;break;
switch (f)
case '*':z=x*c;break;
case '/':z=x/c;break;
printf("counter=%lf\n",z);
else if((f==('+'||'-')) && e==(('+'||'-')))
switch (e)
case '+':x=a+b;break;
case '-':x=a-b;break;
switch (f)
case '+':z=x+c;break;
case '-':z=x-c;break;
printf("counter=%lf\n",z);
else if ((f==('*'||'/')) && e==(('+'||'-')))
switch (f)
case '*':y=x*c;break;//在此x需要初始化
case '/':y=x/c;break;
switch (e)
case '+':z=a+y;break;
case '-':z=a-y;break;
printf("counter=%lf\n",z);
修改处已注明。
望采纳~如您还有不解,欢迎追问~追问
我在上面加上了初始化,还是不成,运行结果如下:
不好意思,我把程序意图理解错了……
#include <stdio.h>
void main()
double a,b,c,x,y,z;
char e,f;
printf("please input :\\n");
scanf("%lf%c%lf%c%lf",&a,&e,&b,&f,&c);
if((f=='*'||f=='/') && (e=='*'||e=='/'))//这样表达才能达到识别运算符的目的
switch (e)
case '*':x=a*b;break;
case '/':x=a/b;break;
switch (f)
case '*':z=x*c;break;
case '/':z=x/c;break;
printf("counter=%lf\\n",z);
else if((f=='+'||f=='-') && (e=='+'||e=='-'))
switch (e)
case '+':x=a+b;break;
case '-':x=a-b;break;
switch (f)
case '+':z=x+c;break;
case '-':z=x-c;break;
printf("counter=%lf\\n",z);
else if ((f=='*'||f=='/') && (e=='+'||e=='-'))
switch (f)
case '*':y=b*c;break;
case '/':y=b/c;break;
switch (e)
case '+':z=a+y;break;
case '-':z=a-y;break;
printf("counter=%lf\\n",z);
运行结果如下:
十分抱歉~
以上是关于c语言 四则运算问题,检查不到错误,运行的时候就提示是不是调试!帮忙改一下的主要内容,如果未能解决你的问题,请参考以下文章