2016-11-08 13 views
2

я должен сделать программу, которая принимает входные данные из 2d массива с п столбцов и 2 строк Пример: фракции = (1 2 3 4) (5 6 7 8)Массив операторов

он также должен возьмите в 1d массив операторов (например: Operators = [+ * -])

код должен добавить, вычесть, умножить, разделить фракции в массиве в зависимости от операторов в массиве 1d - ex: 1/5 + 2/6 * 3/7 -4/8

Я получил свой код, чтобы правильно ввести оба массива, но мне сложно определить, как заставить его выполнять математику. Я прочитал, что ответ содержит наименее распространенный множественный и самый большой общий делитель, поэтому я также сделал для этого отдельную программу, но не знаю, как объединить программы вместе. Кто-нибудь видел такую ​​проблему раньше и может дать совет? Спасибо заранее.

import java.util.Scanner; 
public class ProjectCS { 
    public static void main (String[]args){ 
     Scanner s = new Scanner(System.in); 


     //1D ARRAY OF OPERATORS 
     System.out.println("How many operators are you going to enter?"); 
     int length = s.nextInt(); 
     String operators[]=new String[length]; 

     System.out.println("Enter operators(+, -, *)"); 

     for (int counter=0; counter<length; counter++){ 
      operators[counter]=s.next(); 

      System.out.print(operators[counter]); 
      //1D ARRAY OF OPERATORS END 
     } 


     //INPUT OF ROWS AND COLUMNS 

     System.out.print("Enter number of rows in matrix:"); 

     int rows = s.nextInt(); 

     System.out.print("Enter number of columns in matrix:"); 

     int n = s.nextInt(); 

     int fractions[][] = new int[rows][n]; 

     System.out.println("Enter all the elements of matrix:"); 

     for (int i = 0; i < rows; i++) { 
      for (int j = 0; j < n; j++) { 
       fractions[i][j] = s.nextInt(); 
      } 
     } 
     for (int i = 0; i < rows; i++) { 
      for (int j = 0; j < n;j++){ 



       System.out.print (fractions[i][j]); 

      } 
      System.out.println(""); 

      //END OF INPUT OF ROWS AND COLUMNS 


     } 
    } 


} 
//LCM code and GCM code 

import java.util.Scanner; 
public class LCM_GCD_METHOD { 

    public static void printFace() { 
     int a; 
     int b; 
     int LCM; 
     int temp; 
     int GCD; 


     Scanner sc= new Scanner(System.in); 
     int x=sc.nextInt(); 
     int y=sc.nextInt(); 

     a=x; 
     b=y; 


     while(b!=0){ 
      temp = b; 
      b = a % b; 
      a = temp; 
     } 
     GCD = a; 
     LCM = (x*y)/GCD; 

     System.out.println("GCD = " + GCD); 
     System.out.println("LCM = " + LCM); 
    } 
    public static void main (String [] args) { 
     printFace(); 
     return; 
    } 
} 
+0

это всегда 2 ряда? – JordanGS

+0

Я работал над этим, но это слишком много работы, чтобы сделать атм, проще всего, если вы создадите новый класс под названием «Фракция». См. Здесь [информация] (http://stackoverflow.com/questions/8453485/addition-subtraction-multiplication-division-with-fractions-in-java-homewo) – JordanGS

ответ

1

Ваши массивы чисел представляют собой массивы целых чисел, но ваш массив операторов представляет собой массив символов. Самый прямой путь я думаю, это

for(int i = 0 ; i < operators.length ; i++){ 
if(operators[i] == '+'){ 
//do addition 
}else if(operators[i] == '-'){ 
//do subtraction 
//and more conditions for the remaining operators 
} 
}