(1) 待定系数法:已知函数类型,可用待定系数法求解,先设出f (x),再利用题目中给的已衫燃知条件,列出关于待定系数的方程组,进而求出待定的系数
(2)换元法:主要用于解决已知复合函数f [g (x)]的表达式求f (x)的解析式的问题,令g(x)=t,解出x,然后代入f [g (x)]中即可求得f(t),从而求得毕铅f (x),要注意新元的取值范围
(3)配凑法:配凑法是将f [g (x)]右端的代数式配凑成关于g (x)的形式,进而求出f (x)的解析式
(4)构造方程组法(消元法) :主要解决已知抽象函数关系式求解函数解析式的问题.方法是根据不同的变量之间的关系,利用变换形式构造不同的等式,通过解方程组求解。
(5)赋值法:在求某些函数的表达式或求某些函数值时,有时把已知条件中的某些变量或数虚赋值,使问题简单明了,从而易于求出函数的表.达式。
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#define ADD1 sizeof(kuohao)
#define ADD2 50
typedef struct kuohao{char astruct kuohao *pre}kuohao
char *creat()
{
char *a
a=(char*)malloc(ADD2*sizeof(char))
gets(a)
return a
}
int judgekuohao(char *a)
{
kuohao *top,*tail,*t
top=tail=(kuohao*)malloc(ADD1)
while(*a!='\0')
{
if(*a=='(')
{
t=top
top=(kuohao*)malloc(ADD1)
t->a='('
top->pre=t
}
else if(*a==')')
{
if(top==tail)
return -1
else
{
t=top
top=top->pre
free(t)
}
}
a++
}
if(top==tail)
return 1
else return -1
}
char precede(char a,char b)
{
int i,j
char compare[8][8]={' ','+','-','*','/','(',')','\0',
'+','>','>','<','<','<','>','>',
'-','>','>','<','<','<','>','毁陪>',
'*','>','>','>','>','<','>','>',
'/','清滑>','>','>','>','<','>','>',
'(','<','<','<','<','<','=',' ',
')','>','>','>','>',' ','>','>',
'\0','<','<','<','<','<',' ','='}
for(i=0i<8i++)
if(compare[0][i]==a)
break
for(j=0j<8j++)
if(compare[j][0]==b)
break
return compare[j][i]
}
void run(char *a)
{
int b[50]={0},countchar c[50],t
int i=0,j=0char *dc[0]='\0'
while(*a!='\0'||c[j]!='\0')
{
count=0
if(*a<='9'&&*a>='0')
{
d=a
while(*d<='9'&&*d>='0')
{
d++
count++
}
while(count>0)
{
b[i]+=(int)((*a-'0')*pow(10,count-1))
count--
a++
}
i++
}
else
{
switch(precede(*a,c[j]))
{
case'<'答余腊:
j++c[j]=*aa++break
case'=':
j--a++break
case'>':
t=c[j]
j--i--
if(t=='-')
{
b[i-1]=b[i-1]-b[i]
b[i]=0
}
else if(t=='+')
{
b[i-1]=b[i-1]+b[i]
b[i]=0
}
else if(t=='*')
{
b[i-1]=b[i-1]*b[i]
b[i]=0
}
else if(t=='/')
{
b[i-1]=b[i-1]/b[i]
b[i]=0
}
else break
}
}
}
printf("%d\n",b[i-1])
}
void main()
{
int i,n,s
char *a[10],*t
scanf("%d",&n)
for(i=0i<=ni++)
a[i]=creat()
for(i=1i<=ni++)
{
t=a[i]
s=judgekuohao(t)
if(s==-1)
{
printf("False\n")
continue
}
else
run(a[i])
}
} 输入: 第一行输入要计算的算术表达式的个数n 后紧跟n行算术表达式 输出: 依次显示n行算术表达式的值 若表达式错误则显示FALSE
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)