C语言中 怎么样进行三位数的四则运算?
#include#include#includemain(){ int x,y,z,n,z1; srand(time(NULL)); while(1){ x=rand()%900+100; y=rand()%900+100; n=rand()%4; switch(n){ case 0:z=x+y;printf("%d + %d = ",x,y);break; case 1:z=x-y;printf("%d - %d = ",x,y);break; case 2:z=x*y;printf("%d * %d = ",x,y);break; case 3:z=x/y;printf("%d / %d = ",x,y);break;} scanf("%d",&z1); if(z==z1) printf("√
");else printf("X
");}}如图所示,望采纳。。。。。。
一个条件运算符要求有3个操作对象,称为三目运算符。
其一般形式为:
表达式1?表达式2:表达式
说明
(1)逻辑运算符的优先级
和
算术运算符的优先级
比
条件运算符的优先级、赋值运算符的优先级都高,这是此运算能够运行的保证
(2)从左至右的运算方式,也是条件之一
(3)因为有(1)、(2)的系统强行规定和运算法则的限定,保证了运算的次序
(4)综合之前所说于是有:先求解表达式1
,若为不是0(即为真),则求解表达式2
的值,此时表达式2的值为整个条件表达式的值。若为0(即非真),则求解表达式3的值,此时表达式3的值为整个条件表达式的值。c=(a>b)?a:b
也就是说先判断a>b是否成立,若成立就把a的值赋给c,否则为b在赋给c。
(5)鉴于以上所述:c=(a>b)?a:b;可改写为:(a>b)?(c=a):(c=b);
#include <stdio.h>
#include <malloc.h>
#define MaxSize 50
void trans(char *exp,char *postexp)
{
struct
{
char data[MaxSize];
int top;
} op;
int i=0;
op.top=-1;
while(*exp!='\0')
{
switch(*exp)
{
case '(':
op.top++;op.data[op.top]=*exp;
exp++;break;
case ')':
while(op.data[op.top]!='(')
{
postexp[i++]=op.data[op.top];
op.top--;
}
op.top--;exp++;break;
case '+':
case '-':
while(op.top!=-1&&op.data[op.top]!='(')
{
postexp[i++]=op.data[op.top];
op.top--;
}
op.top++;op.data[op.top]=*exp;exp++;break;
case '*':
case '/':
while(op.data[op.top]=='*'||op.data[op.top]=='/')
{
postexp[i++]=op.data[op.top];
op.top--;
}
op.top++;op.data[op.top]=*exp;exp++;break;
case ' ':break;
default:
while(*exp>='0'&&*exp<='9')
{
postexp[i++]=*exp;
exp++;
}
postexp[i++]='#';
}
}
while(op.top!=-1)
{
postexp[i++]=op.data[op.top];
op.top--;
}
postexp[i]='\0';
}
float compvalue(char *postexp)
{
struct
{
float data[MaxSize];
int top;
} st;
float a,b,c,d;
st.top=-1;
while(*postexp!='\0')
{
switch(*postexp)
{
case '+':
a=st.data[st.top];
st.top--;
b=st.data[st.top];
st.top--;
c=b+a;
st.top++;
st.data[st.top]=c;
break;
case '-':
a=st.data[st.top];
st.top--;
b=st.data[st.top];
st.top--;
c=b-a;
st.top++;
st.data[st.top]=c;
break;
case '*':
a=st.data[st.top];
st.top--;
b=st.data[st.top];
st.top--;
c=b*a;
st.top++;
st.data[st.top]=c;
break;
case '/':
a=st.data[st.top];
st.top--;
b=st.data[st.top];
st.top--;
if(a!=0)
{
c=b/a;
st.top++;
st.data[st.top]=c;
}
else
{
printf("\n\tError of clear zero!\n");
}
break;
default:
d=0;
while(*postexp>='0'&&*postexp<='9')
{
d=10*d+*postexp-'0';
postexp++;
}
st.top++;
st.data[st.top]=d;
break;
}
postexp++;
}
return st.data[st.top];
}
int main()
{
char exp[MaxSize],postexp[MaxSize];
printf("Please input expression: ");
scanf("%s",&exp);
trans(exp,postexp);
printf("%s=%g\n",exp,compvalue(postexp));
return 0;
}
不明白楼主的问题,能说得具体一点吗
C语言中 怎么样进行三位数的四则运算?
\/* 任意加减乘除表达式,如1+2*3 *\/ include <stdio.h> include <malloc.h> define MaxSize 50 void trans(char *exp,char *postexp){ struct { char data[MaxSize];int top;} op;int i=0;op.top=-1;while(*exp!='\\0'){ switch(*exp){ case '(':op.top++;op.data[op.top]...
3位数的加减法
在三位数加减法操作时,若算式无括号,只需遵循从左至右顺序,依次执行加减运算。遇到括号则需先计算括号内的数值,再进行括号外的运算。在算式中如出现乘除号,遵循先乘除后加减的原则进行运算。减法是四则运算之一,其定义为从一个数中减去另一个数的过程。已知两个加数之和与其中任意一个加数,求解...
三位数加减混合运算怎么列式计算呢?
三位数加减混合运算例子解析892-617+647 解题思路:四则运算规则(按顺序计算,先算乘除后算加减,有括号先算括号,有乘方先算乘方)即脱式运算(递等式计算)需在该原则前提下进行 解题过程:892-617+647 =275+647 =922 验算一:922-647=275 验算二:275+617=892 ...
三位数加减法怎么算?是先加还是先减
在进行三位数的加减法运算时,如果没有括号,我们应该从左到右依次进行计算。如果式子中有括号,那么我们先计算括号内的运算。在进行综合算式(包含加、减、乘、除四则运算)的计算时,以下几点需要注意:1. 如果算式中只包含加法和减法或者只包含乘法和除法,我们同样是从左到右进行计算。例如:2+1-1...
三位数加减混合运算是什么?
四则运算的运算顺序:1、如果只有加和减或者只有乘和除,从左往右计算。2、如果一级运算和二级运算,同时有,先算二级运算。3、如果一级,二级,三级运算(即乘方、开方和对数运算)同时有,先算三级运算再算其他两级。4、如果有括号,要先算括号里的数(不管它是什么级的,都要先算)。5、在括号...
数学三位数简便计算方法
数学三位数简便计算例子362+556 解题思路:四则运算规则(按顺序计算,先算乘除后算加减,有括号先算括号,有乘方先算乘方)即脱式运算(递等式计算)需在该原则前提下进行 解题过程:362+556 =350+550+(12+6)=900+18 =918
四则运算的口算顺序是怎样的?
1.能计算三位数乘两位数的乘法,三位数除以两位数的除法。2.认识中括号,能进行简单的整数四则混合运算(以两步为主,不超过三步)。3.探索并了解运算律(加法的交换律和结合律、乘法的交换律和结合律、乘法对加法的分配律),会应用运算律进行一些简便运算。4.在具体运算和解决简单实际问题的过...
三位数的除法视频教程
1、定商位置再除法:三位数除两位数我们一般使用定商位置再除法。2、看前两位:先看被除数的前两位够不够除,如果够除商就定在被除数的第二位上面。3、商定在第三位:如果前两位不够除,就要看前三位,也就是把商定在第三位。4、余数比除数小:定商位置再除法最重要的一点是每次除得的余数必须...
三位数除以两位数诀窍
关于三位数除以两位数诀窍如下:三位数除以两位数,先看被除数前两位。两位不够看三位,除到哪位商哪位。不够商1用0站位,每次除后要比较。余数要比除数小,最后验算不能少。资料拓展:除法是四则运算之一,已知两个因数的积与其中一个非零因数,求另一个因数的运算叫做除法。两个数相除又叫做两个...
三位数加减三位数
6、符号相同的数可以先相加。7、分母相同的数可以先相加。三位数加减三位数的笔算,它是青岛版(六三制)二年级下册第四单元信息窗2第一个红点和绿点的内容。在解决320+210=?时,运用三种解决问题思路:几十加几十;整百和整百加,整十和整十加;笔算方法。教学重点是用笔算方法,引导学生注意笔算...