类可以不用改    fraction[] farr = new fraction[5];
    for (int i = 0; i < farr.length; ++i) {
      farr[i] = new fraction();
      farr[i].set(1, i + 2);
    }
    fraction answer = new fraction();
    answer.set(0, 1);
    for (int i = 0; i < farr.length; ++i) {
      answer.add(farr[i], answer);
      answer.output();
    }    answer.output();

解决方案 »

  1.   

    class fraction 
     {
     protected int iNum;
     protected int iDen; fraction()
       {
       iNum = 1;
       iDen = 1;
       } fraction(int iTop, int iBot)
       {
       set(iTop, iBot);
       } public void set(int iTop, int iBot)
       {
       iNum = iTop;
       iDen = iBot; 
       } // set public void add(fraction otherFrac, fraction answer)
       {
         int iNewDen = iDen * otherFrac.iDen;
         int iNewNum = iNum * otherFrac.iDen + otherFrac.iNum * iDen;     answer.set(iNewNum, iNewDen);   } public String toString()
       {
       return (""+ iNum + "/" + iDen);
       } public void output()
       {
       System.out.println(iNum + "/" + iDen); 
       } // end output }  // end class fraction class  AddArray
     {
             fraction answer=new fraction();
             public fraction add(fraction[] frac)
             {
                     int iNewDen=frac[0].iDen*frac[1].iDen;
                     int iNewNum=frac[0].iNum*frac[1].iDen+frac[1].iNum*frac[0].iDen;
                     for(int i=2;i<frac.length;i++)
                     {
                             int temp=iNewDen;
                             iNewDen=iNewDen*frac[i].iDen;
                             iNewNum=iNewNum*frac[i].iDen+frac[i].iNum*temp;
                   
                          
                     }
                    answer.set(iNewNum,iNewDen);
                    return answer;         } }// Class test in its own file
    // uses fraction class
    public class Test 
     {
     public static void main( String args[] )
       {
       fraction frac1 = new fraction();
       fraction frac2 = new fraction();
       fraction answer = new fraction();
       frac1.set(4,5);
       frac2.set(2,3);
       frac1.add(frac2, answer);
       System.out.println("两个分数相加的结果是:");
       System.out.print("answer = ");
       answer.output();   fraction frac[];
       frac=new fraction[5];
       for(int i=0;i<frac.length;i++)
         frac[i]=new fraction();
       frac[0].set(1,3);
       frac[1].set(1,4);
       frac[2].set(1,5); 
       frac[3].set(2,5);
       frac[4].set(1,4);   AddArray addArray=new AddArray();
       fraction result=new fraction();
       result=addArray.add(frac);
       System.out.println("五个分数相加的结果是:");
       System.out.print("result = ");
       result.output();   System.exit(0);  // ends the program   } // end main method } // end class test
      

  2.   

    另外要考虑约分,否则会超出int范围,如
        fraction t1 = new fraction(100000,1000000);    
        fraction t2 = new fraction(100000,1000000);
        t1.add(t2,answer);
        answer.output();
      

  3.   

    我的问题是5个分数相加,生成一个结果,不是5组两个分数相加生成5个结果,谢谢!
    另外:发展才是硬道理: class  AddArray 这个CLASS写在哪里?
      

  4.   

    你把我发的所有内容保存到一个文件Test.java里然后javac Test.java就可以了
      

  5.   

    搂主你有没有仔细看啊,
    只有一个结果在answer中