The following code is working as expected, however I'm unable to display the output on a single line. All numbers are random numbers printed using Random() function.
As of now, it's printing like this:
38
--- +
45
90
--- +
16
29
--- +
21
54
--- +
99
= 211
---
181
The output should be displayed like this:
38 90 29 54 211
--- + ---- + ---- + ---- = -----
45 16 21 99 181
Code:
import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;
public class FractionJava2 {
public static void main(String[] args) {
/* Array to store Numerator variables */
int[] num = new int[4];
/* Array to store Denominator variables */
int [] denom = new int[4];
/* Variable to hold the operator sign */
char ch ;
/* Random function to get the random numbers */
Random random = new Random();
/* Scanner function to take the user input */
Scanner scan = new Scanner(System.in);
int num_sum[] = new int[num.length];
int denom_sum[] = new int[denom.length];
for (int i = 0, j=0; i < denom.length; i++, j++) {
num[i] = random.nextInt(100)+1;
denom[j]=random.nextInt(100)+1;
System.out.println("Numerators are: " +num[i]);
System.out.println("Denominators are: "+denom[i]);
}
System.out.println("Enter the operation you wish to perform");
ch = scan.next().toCharArray()[0];
System.out.println("\nThe resultant fraction is: ");
/* Variable to hold the sum of numerator values */
int numeratorSum = 0;
/* Variable to hold the sum of denominator values */
int denominatorSum = 0;
switch(ch){
case '+' :
for (int i = 0; i < denom_sum.length; i++) {
num_sum[i] = num_sum[i] + num[i];
denom_sum[i] = denom_sum[i]+ denom[i];
System.out.printf("%d \n", num_sum[i]);
System.out.printf("--- %c \n", ch);
System.out.printf("%d \n", denom_sum[i]);
numeratorSum = numeratorSum + num_sum[i];
denominatorSum = denominatorSum + denom_sum[i];
}
System.out.println("\n");
System.out.printf("=\t");
System.out.printf("%d \n", numeratorSum);
System.out.printf("\t--- \n", ch);
System.out.printf("\t%d ", denominatorSum);
}
}
}
I'm unable to trace out, as to what is preventing from printing the desired output.
Please help !!!
You'll need multiple loops, one for each output line :
// first line
for (int i = 0; i < denom_sum.length; i++) {
num_sum[i] = num_sum[i] + num[i];
System.out.printf("%d ", num_sum[i]);
numeratorSum = numeratorSum + num_sum[i];
}
System.out.printf(" %d \n", numeratorSum);
// second line
for (int i = 0; i < denom_sum.length; i++) {
System.out.printf("--- %c", ch);
}
System.out.printf("=\t --- \n", ch);
// third line
for (int i = 0; i < denom_sum.length; i++) {
denom_sum[i] = denom_sum[i]+ denom[i];
System.out.printf("%d ", denom_sum[i]);
denominatorSum = denominatorSum + denom_sum[i];
}
System.out.printf("\t%d \n", denominatorSum);
I probably got the spaces and TABs wrong, but you get the idea.
BTW, your output is incorrect. That's not how you add fractions.