C语言问题求解!关于输出x+y=z

输入的是一个算式,如3+2=5;

程序对算式的结果进行正确与否的判断;

若输入的计算结果正确,则显示“Perfect!",若错误则显示”Error!",并输出正确的加或减等式

#include <stdio.h>

int main()
{
int a, b, c;
char cOperator;
int bPerfect = 1;

scanf("%d%c%d=%d", &a, &cOperator, &b, &c);
switch (cOperator)
{
case '+':
if (a + b != c)
{
printf("Error!\n%d+%d=%d\n", a, b, a + b);
bPerfect = 0;
}
break;

case '-':
if (a - b != c)
{
printf("Error!\n%d-%d=%d\n", a, b, a - b);
bPerfect = 0;
}
break;

case '*':
if (a * b != c)
{
printf("Error!\n%d*%d=%d\n", a, b, a * b);
bPerfect = 0;
}
break;

case '/':
if (a / b != c)
{
printf("Error!\n%d/%d=%d\n", a, b, a / b);
bPerfect = 0;
}
break;

default:
printf("Error!\nInvalid statement\n");
bPerfect = 0;
break;
}

if (bPerfect)
{
printf("Perfect!\n");
}

return 0;
}

 支持加减乘除四则运算的判断,已测试通过。

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-04-21
如果只判断加法很简单,但是如果涉及东西很多,也很难,如果只是判断加法 ,再次提问,我来解答追问

就是判断后还要输出正确的等式,就只判断加法吧

追答#include<stdio.h>
int main(){
int a,b,c;
char s,l;
scanf("%d%c%d%c%d",&a,&s,&b,&l,&c);
switch(s)
{
case '+':
if(a+b==c)
printf("Perfect!");
else
printf("Error!");
break;
    case '-':
if(a-b==c)
printf("Perfect!");
else
printf("Error!");
break;
case '*':
if(a*b==c)
printf("Perfect!");
else
printf("Error!");
break;
case '/':
if(a/b==c)
printf("Perfect!");
else
printf("Error!");
break;
}
scanf("%d",&b);
}

 刚刚完成的。满足要求 。

第2个回答  2014-04-21
这个很简单,稍微看下C的书就ok了追问

我会就不会来问了,你会吗?

C语言问题求解!关于输出x+y=z
\\n%d-%d=%d\\n", a, b, a - b);bPerfect = 0;}break;case '*':if (a * b != c){printf("Error!\\n%d*%d=%d\\n"

C语言中语句x?y:z什么意思
整个表达式的值,就是如果 x 不等于0,表达式的值就等于 y 的值;否则就等于 z 的值。

int x,y,z; x=3; y=2; z=0; x+=y+=z; 这个C语言代码是什么时候意思?x...
楼主是不是看错了啊,大家这么运行都是x=5,y=2,z=0;include<stdio.h> int main(){ int x,y,z; x=3; y=2; z=0; x+=y+=z; \/\/右结合,y=y+z=2;x=x+y=3+2=5;printf("x=%d,y=%d,z=%d\\n",x,y,z);return 0;} ...

C语言中:若x=y=1,z={x+x,y++,++y},输出x,y,z的值
x=1,y=1 z=x++ 把x给z,所以z=1,之后x++,所以x=2;y++ 原来y=1,现在变成2 ++y 前面y=2,现在变成3.所以,最后:x=2 y=3,x=1

问下,c语言里x+=y+=z是什么意思啊?
x+=y+=z;那么y=y+z,所以y==2;x=x+y,所以x==5。执行printf();由于x<y为假,所以x<y==1,输出1\\n。z=y=x++*3;那么y=y+x++*3,相当于y=y+x*3,x++;所以y==15,x==6;z=y,那么z==15;执行pringf();由于y>=z为真,所以输出1,6\\n。x=y>z>=5;关系运算符优先级高于...

c语言 这题应该怎么做,大一新生
x*=3+1; 即x*=4(加法优先级高于复合赋值优先级),也即 x=x*4; 而x++是先用完x的值再自增,因此此时x的值8被输出.然后x自增为9.x+=y=z=5; 赋值运算符是右结合,也就是从右向左计算,z被赋值为5,然后y被赋值为表达式z=5的值,这个表达式的值就是5,同理x+=(y=z=5), 表达式...

c语言 这题应该怎么做,大一新生
x*=3+1;即x*=4(加法优先级高于复合赋值优先级),也即 x=x*4;而x++是先用完x的值再自增,因此此时x的值8被输出.然后x自增为9.x+=y=z=5;赋值运算符是右结合,也就是从右向左计算,z被赋值为5,然后y被赋值为表达式z=5的值,这个表达式的值就是5,同理x+=(y=z=5),表达式y=z=...

C语言问题 程序中的if(x=y+z)是什么意思?
就是把y+z的值给x,然后如果x不为0就输出***,否则输出

c语言求解。。。
左边的那题,注意z=x;x=y;y=z;这一行 都是分号 所以 只有z=x是受判断if(x>y)影响的,其它的无条件执行 这里 x=y=20 y=z=30 输出 x=20,y=30,z=30 右边的,i每次自加1, 为偶数时,x自加 为5的倍数时,y自加并结束循环 于是 i值依次为1 2 3 4 5 x自加2次 y自加1次...

从键盘输入x和y 的值,z=x+y,输出z的值 ,用汇编语言写,急求,望大神不吝...
MOV AL,X MOV BX,0 MOV BL,Y ADD AX,BX MOV Z,AL MOV BX,AX MOV DX,13 MOV AH,2 INT 21H MOV DX,10 MOV AH,2 INT 21H CALL OUTPUT MOV AX,4C00H ;Í˳ö³ÌÐò INT 21H ;---...

相似回答
大家正在搜