类可以不用改 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();
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();
{
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
fraction t1 = new fraction(100000,1000000);
fraction t2 = new fraction(100000,1000000);
t1.add(t2,answer);
answer.output();
另外:发展才是硬道理: class AddArray 这个CLASS写在哪里?
只有一个结果在answer中