添加java程序时出错

添加java程序时出错,java,fractions,Java,Fractions,我的Java类的最后一个程序有问题。我们只能使用到目前为止所学的概念,所以我不能使用其他课程。基本上只是循环、数组和方法 因此,对于这个程序,我们必须添加输入的任何五组分数,并以最低形式给出GCD和结果。我必须在第一个表中显示所有数据,然后在第二个表中显示原始数据、GCD和最低形式的结果。必须使用以下数据对其进行测试: 1/4 + 1/2 2/3 + 1/3 7/8 + 1/8 2/9 + 4/27 7/25 + 2/5 这是我到目前为止的代码。(温柔一点,我还是新手) import java

我的Java类的最后一个程序有问题。我们只能使用到目前为止所学的概念,所以我不能使用其他课程。基本上只是循环、数组和方法

因此,对于这个程序,我们必须添加输入的任何五组分数,并以最低形式给出GCD和结果。我必须在第一个表中显示所有数据,然后在第二个表中显示原始数据、GCD和最低形式的结果。必须使用以下数据对其进行测试:

1/4 + 1/2
2/3 + 1/3
7/8 + 1/8
2/9 + 4/27
7/25 + 2/5
这是我到目前为止的代码。(温柔一点,我还是新手)

import java.util.Scanner;
公共类HelloWorld{
公共静态void main(字符串[]args)引发异常{
int[]num1Array=newint[5];
int[]num2Array=newint[5];
int[]deno1Array=新int[5];
int[]deno2Array=新的int[5];
扫描仪输入=新扫描仪(System.in);

对于(int x=0;x试试这个,希望它能帮助你。:)


那么问题是什么?您没有向我们显示
gcdfinal()
fracAdd()
的代码,这就是您的问题所在(如果有)谎言。这两种方法都位于代码的底部,只是一个通用的指针:当循环变量没有特定的含义时,例如
,这是最好的方法(尽管当然没有必要)使用
i
作为循环变量。在嵌套循环中,进程是
i
j
k
,等等。我要说的是,这三个循环都可以使用
for(int x…)
它们不必是不同的变量。我只是不确定如何在方法之后将添加的分子和分母传递到表中。此外,如果它添加到1,则只能显示1。
import java.util.Scanner;
public class HelloWorld{
    public static void main(String[] args) throws Exception{
        int[] num1Array = new int[5];
        int[] num2Array = new int[5];
        int[] deno1Array = new int[5];
        int[] deno2Array = new int[5];
        Scanner input = new Scanner(System.in);
        for(int x=0;x<5;x++) {                                    //Get all data from user
            System.out.println("Enter data for problem " + (x+1));
            System.out.println("Enter numberator for fraction 1");
            num1Array[x] = input.nextInt();
            System.out.println("Enter denominator for fraction 1");
            deno1Array[x] = input.nextInt();
            System.out.println("Enter numberator for fraction 2");
            num2Array[x] = input.nextInt();
            System.out.println("Enter denominator for fraction 2");
            deno2Array[x] = input.nextInt();
            System.out.println("********************");
        }
        System.out.println("*****ORIGINIAL DATA ******");  //Output all entered data
        System.out.println("First Fraction \t Second Fraction");
        for(int y=0;y<5;y++) {
            System.out.printf("%1d/%1d   \t\t %1d/%1d\n", num1Array[y], deno1Array[y], num2Array[y], deno2Array[y]);
        }
        System.out.println("*******FRACTIONS SHOWING ADDED RESULTS*********"); //Display results
        System.out.println("First Fraction \t Second Fraction GCD     Results");
        for(int z=0;z<5;z++){

            int finalgcd = gcdfinal(num1Array[z], num2Array[z], deno1Array[z], deno2Array[z]);
            int addFrac = fracAdd(num1Array[z], num2Array[z], deno1Array[z], deno2Array[z]);
            System.out.printf("%1d/%1d   \t\t %1d/%1d\t\t %1d \t %1d", num1Array[z], deno1Array[z], num2Array[z], deno2Array[z], finalgcd, addFrac);
            System.out.println();
        }
    }


    public static int fracAdd(int num1, int num2, int deno1, int deno2)
    {
        int e = lcm(deno1, deno2); //denominator
        int f1 = e / deno1;
        int f2 = e / deno2;
        int g1 = num1 * f1;
        int g2 = num2 * f2;
        int adding = g1 + g2;
        int k = gcd(adding, e);
        int final_num = adding / k;
        int final_deno = e / k;
        if(final_num == final_deno){
            return 1;
        }
        else {
            return (final_num, final_deno);
        }
    }

    public static int gcd(int a, int b) //Calculate GCD
    {
        while (b > 0)
        {
            int temp = b;
            b = a % b;
            a = temp;
        }
        return a;
    }

    public static int gcdfinal(int num1, int num2, int deno1, int deno2)
    {
        int e = lcm(deno1, deno2); //Calculate the GCD for display
        int f1 = e / deno1;
        int f2 = e / deno2;
        int g1 = num1 * f1;
        int g2 = num2 * f2;
        int end = g1 + g2;
        int k = gcd(end, e);
        return k;
    }
    public static int lcm(int a, int b) //Calculate LCM
    {
        return a * (b / gcd(a, b));
    }
}
import java.util.Scanner;

public class AddingFraction {

public static void main(String[] args) {
// TODO Auto-generated method stub
    Scanner sc = new Scanner(System.in);
    System.out.println("please enter a fraction number in a/b format: ");
    String fraction1 = sc.nextLine();
    System.out.println("please enter another fraction number in a/b format: ");
    String fraction2 = sc.nextLine();
    addFractions(fraction1, fraction2);

}

public static void addFractions(String fractionNum1, String fractionNum2) {
    int numResult = 0;
    String resultFraction;
    String[] frcNum1 = fractionNum1.split("/");
    int numerator1 = Integer.parseInt(frcNum1[0]);
    int Denomenator1 = Integer.parseInt(frcNum1[1]);
    String[] frcNum2 = fractionNum2.split("/");
    int numerator2 = Integer.parseInt(frcNum2[0]);
    int Denomenator2 = Integer.parseInt(frcNum2[1]);
    if (Denomenator1 == Denomenator2) {
        numResult = numerator1 + numerator2;
        resultFraction = numResult + "/" + Denomenator1;
        System.out.println("Resultant Fraction is : "+resultFraction);
    } else {
        int denLcm = Denomenator1 * (Denomenator2 / gcd(Denomenator1, Denomenator2));;
        numResult = numerator1 * (denLcm / Denomenator1) + numerator2
                * (denLcm / Denomenator2);
        resultFraction = numResult + "/" + denLcm;
        System.out.println("Resultant Fraction is : "+resultFraction);
    }
}

private static int gcd(int a, int b) {
    while (b > 0) {
        int temp = b;
        b = a % b; // % is remainder
        a = temp;
    }
    return a;
}

}