public class test1 {public static void methodA(int n,double a[],char c[]){//封装的类,传递的参数 n是运算符的个数 a是数字数组 c是符号数组 int i,j; if(n==0) //运算个数为0,进行阶乘 { for(i=(int) a[0];i>1;i--) { System.out.println(i); System.out.println(a[0]); a[0]=a[0]*(i-1); } } /*下面这部分是对算式进行解析并且进行四则运算*/ else{ for(i=0;i<=n;i++) { if(c[i]=='*') { a[i]=a[i]*a[i+1]; for(j=i;j<n;j++) { a[j+1]=a[j+2]; c[j]=c[j+1]; } i=0; n--; } if(c[i]=='/') { a[i]=a[i]/a[i+1]; for(j=i;j<n;j++) { a[j+1]=a[j+2]; c[j]=c[j+1]; } i=0; n--; } } for(i=0;i<=n;i++) { if(c[i]=='+') { a[i]=a[i]+a[i+1]; for(j=i;j<n;j++) { a[j+1]=a[j+2]; c[j]=c[j+1]; } i=0; n--; } if(c[i]=='-') { a[i]=a[i]-a[i+1]; for(j=i;j<n;j++) { a[j+1]=a[j+2]; c[j]=c[j+1]; } i=0; n--; } } } } }
上面这一部分是算法的封装。
public class test { public static void main(String[] args) { int n=2; double []a=new double [10]; a[0]=1; a[1]=2; a[2]=7;char []c=new char [10]; c[0]='+';c[1]='*'; test1 core = new test1(); core.methodA(n, a, c); System.out.println(a[0]); } }
这一部分是主函数,为了方便我把输入的过程省略了,改为直接赋值。
小伙伴:陈俊金,博客:http://www.cnblogs.com/cjj19/