Java 在一行中显示对多个分数的操作
下面的代码按预期工作,但是我无法在一行上显示输出。所有数字都是使用Java 在一行中显示对多个分数的操作,java,fractions,Java,Fractions,下面的代码按预期工作,但是我无法在一行上显示输出。所有数字都是使用random()函数打印的随机数。 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
random()函数打印的随机数。
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);
}
}
}
现在,它是这样打印的:
输出应如下所示:
代码:
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);
}
}
}
导入java.util.array;
导入java.util.Random;
导入java.util.Scanner;
公共类FractionJava2{
公共静态void main(字符串[]args){
/*存储分子变量的数组*/
int[]num=新的int[4];
/*存储分母变量的数组*/
int[]denom=新的int[4];
/*用于保存运算符符号的变量*/
char ch;
/*随机函数来获取随机数*/
随机=新随机();
/*扫描仪功能,用于获取用户输入*/
扫描仪扫描=新扫描仪(System.in);
int num_sum[]=新int[num.length];
int denom_sum[]=新的int[denom.length];
for(int i=0,j=0;i
我无法找出阻止打印所需输出的原因。请帮忙强>
您需要多个循环,每个输出行一个循环:
// 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);
//第一行
for(int i=0;i
我可能把空格和制表符弄错了,但你明白了
顺便说一句,您的输出不正确。这不是添加分数的方式。您使用的是
println
,每次调用它时都会添加换行符;尝试使用print
@DaveBennett-您想指出代码的哪一部分?感谢您的快速响应。
我理解添加分数需要找到分母的LCM并继续。然而,正如你所指出的,我的目标不是分数的实际相加。虽然数字可能是分数的形式,但加法仍然像是我们在添加一个数字,忽略了它的分数部分。BTW,你的代码工作得很神奇!!如果假设我以正常的方式添加分数,那么代码中需要做哪些更改。
一个简单的提示应该可以满足需要。@mindfank,这将需要对代码进行大量更改。也就是说,当你的程序不打算这样做时,为什么你要以正常的方式添加分数呢?@ChetanKinger-#只是问一下
“自助是最好的帮助”这句俗话,我会努力寻找答案。如果我真的被困在任何地方,我都需要跳到这里来寻求专家的帮助。@mindfreak是的,但你需要下决心。当Eran指出那不是分数相加的方式时,你说你的目标不是分数的实际相加。现在你想要的正好相反。发布一个新问题,因为答案不能包含在评论中。
// 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);