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

 


运行结果如下:


十分抱歉~

参考技术A scanf()的取地址符呢? 参考技术B scanf a,e,b,f, 加&

以上是关于c语言 四则运算问题,检查不到错误,运行的时候就提示是不是调试!帮忙改一下的主要内容,如果未能解决你的问题,请参考以下文章

c语言 运行完就直接退出了,看不到结果

c语言文件读写问题,文件没内容?程序是照着书上搬出来的,运行什么都没问题就是生成的文件里面看不到内容

python语法检查工具

c语言helloworld代码是对的,但编译错误?

c/c++ 运算溢出问题

光天化日学C语言(14)- 位运算 & 的应用 | C语言课上学不到的哦~