更好看的代码
#include <stdio.h>
#include <math.h>
double sum(double a, double b) { return a + b }
double minu(double a, double b) { return a - b }
double mult(double a, double b) { return a * b }
double div(double a, double b) { return a / b }
int mod(int a, int b) { return a % b }
long long fact(int a)
{
long long ans = 1
for (int i = 2 i <= a ++i)
ans *= i
return ans
}
double squ(double a) { return a * a }
double sqr(double a) { return sqrt(a) }
double ABS(double a) { return a < 0 ? -a : a }
int main()
{
puts("欢迎使用我的计算器。请根兄扒旅据提示,完成计算")
while (1)
{
puts("****************")
double a
fflush(stdin)
scanf("%lf", &a)
puts("请输入 *** 作(加(0)、减(1)、乘(2)、此埋除(3)、求余(4)、阶乘(5)、平方(6)、开平方(7)、绝对值(8))")
fflush(stdin)
int ope
scanf("%d", &ope)
while (ope < 0 || ope > 8)
{
fflush(stdin)
puts("请重新输入")
scanf("%d", &ope)
}
double b
switch (ope)
{
case 0:
puts("请输入第羡凳二个数")
fflush(stdin)
scanf("%lf", &b)
printf("答案是:%lf\n", sum(a, b))
break
case 1:
puts("请输入第二个数")
fflush(stdin)
scanf("%lf", &b)
printf("答案是:%lf\n", minu(a, b))
break
case 2:
puts("请输入第二个数")
fflush(stdin)
scanf("%lf", &b)
printf("答案是:%lf\n", mult(a, b))
break
case 3:
puts("请输入第二个数")
fflush(stdin)
scanf("%lf", &b)
printf("答案是:%lf\n", div(a, b))
break
case 4:
puts("请输入第二个数")
fflush(stdin)
scanf("%lf", &b)
printf("答案是:%d\n", mod(a, b))
break
case 5:
printf("%lld\n", fact(a))
break
case 6:
printf("答案是:%lf\n", squ(a))
break
case 7:
printf("答案是:%lf\n", sqr(a))
break
case 8:
printf("答案是:%lf\n", ABS(a))
break
default:
puts("错误")
break
}
puts("****************")
}
return 0
}
// 代码原创,希望能对你有帮助
这种运算比较麻烦,不过4种运算符号优先级相同应该简单写,我这里有个算法判手旁,能进行简单的四则运算,delphi的,供参考Function Math_Evaluate(S0:string):Extended
Function Evaluate(S0:String):ExtendedForward
Procedure CleanUp(var s0:string)
Var
I:integer
Begin
S0:=LowerCase(s0)
I:=Pos(' ',s0)
While I>0 Do
Begin
Delete(S0,I,1)
I:=Pos(' ',S0)
End
End
Function GetFirstOpp(Tot:IntegerS0:String):Integer
Const
Sopps:String=('+-*/^')
Var
I:Integer
Begin
If Tot=0 Then Tot:=Length(S0)
For I:=1 To 5 Do
Begin
Result:=Pos(Sopps[i],S0)
If ((I<3) And (Result>0)) Then
If ((Result=1) Or (Pos(S0[Result-1],Sopps)>0)) Then
Result:=0
If Result>0 Then
If Result<掘橡Tot Then
Exit
End
If Result>Tot Then
Result:=0
End
Function SpecialF(P1:IntegerS0:String):Extended
Var
Operstr:String
Arg:Extended
Begin
Result:=0
Operstr:=Copy(S0,1,P1-1)
If S0[Length(S0)]<>薯雹')' Then
Exit
Operstr:=LowerCase(Operstr)
Arg:=Evaluate(Copy(S0,P1+1,Length(S0)-P1-1))
if Operstr ='sin' Then
Result:=Sin(Arg)
Else if Operstr ='cos' Then
Result:=Cos(Arg)
Else if Operstr ='tan' Then
Result:=Sin(Arg)/Cos(Arg)
Else if Operstr ='arctan' Then
Result:=Arctan(Arg)
Else if Operstr ='log' Then
Result:=Ln(Arg)/Ln(10)
Else if Operstr ='ln' Then
Result:=Ln(Arg)
Else if Operstr ='exp' Then
Result:=Exp(Arg)
Else if Operstr ='sqrt' Then
Result:=Sqrt(Arg)
{enter additional functions here}
Else Exit
End
Function GetValue(S0:String):Extended
Begin
Result:=0
If Length(S0)<1 Then Exit
If Length(S0)=1 Then
Result:=StrToFloat(S0)
Else
Case s0[1] Of
'x':Result:=1
'y':Result:=1
'z':Result:=1
Else Result:=StrToFloat(S0)
End
End
Procedure MatchBracket(Var I:IntegerS0:String)
Var
J,Len:Integer
Begin
J:=1
Len:=Length(S0)
Repeat Inc(I)
If I>Len Then Exit
If S0[I]='(' Then Inc(J)
If S0[I]=')' Then Dec(J)
If J<0 Then Exit
Until J=0
End
Function Calculate(P1:IntegerS0:String):Extended
Var
V1,V2:Extended
Begin
Result:=0
V1:=Evaluate(Copy(S0,1,P1-1))
V2:=Evaluate(Copy(S0,P1+1,Length(s0)-P1))
Case S0[P1] Of
'+': Result:=V1+V2
'-': Result:=V1-V2
'/': Result:=V1/V2
'*': Result:=V1*V2
'^': Result:=Exp(V2*Ln(V1))
Else Exit
End
End
Function Evaluate(S0:string):Extended
Var
P1,P2,Q1:Integer
Begin
P1:=Pos('(',S0)
P2:=P1
If P2>0 Then
MatchBracket(P2,S0)
If P1=1 Then
Begin
If P2=Length(S0) Then
Begin
Delete(S0,P2,1)
Delete(S0,1,1)
Result:=Evaluate(S0)
End Else
Result:=Calculate(P2+1,S0)
Exit
End
Q1:=GetFirstOpp(P1,S0)
If (P1+Q1=0) Then
Begin
Result:=GetValue(S0)
Exit
End
If Q1<>0 Then
Result:=Calculate(Q1,S0)
Else If Length(S0)>P2 Then
Result:=Calculate(P2+1,S0)
Else
Result:=SpecialF(P1,S0)
End
Begin
Try
CleanUp(S0)
Result:=Evaluate(S0)
Except
Result:=0
End
End
1、中尘首先准备好软件即eclipse和java,下载安装完成后打开eclipse。
2、点击左上角的file 新建一个project。
3、给project取一个名字,其他的选项都是默认然后点击finish。
4、接下来是新建一个class。
5、在给class取名字的时候注意用英文名亏培猛的首字母要大写。完成后点击finish。
6、这就是开销桥始写代码的工作台,将代码写在绿字下。
7、这就是第一个hello world程序。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)