java分数计算_用于计算分数的Java程序

该程序的目的是为一个分数获取两个用户输入,从用户那里接收一个运算符,然后为第二个分数获取另外两个用户输入.程序必须检查两个小数中使用的数字是否在0-99之间并且分母为非零.该程序还必须确保用户输入有效的运算符(-,,*,/).

我现在面临的唯一问题是我的变量都没有初始化,而且我不知道如何使输出看起来像这样:

1 1 3

--- + --- = ---

4 8 8

这是我到目前为止所拥有的代码,由于我对使用Java的了解很少,因此任何帮助将不胜感激:

import java.util.Scanner;

public class FractionCalculator {

public static void main(String[] args) {

Scanner in = new Scanner(System.in);

int n1;

int n2;

int d1;

int d2;

int n;

int d;

char o;

int m1,m2;

int tempN1, tempN2;

int lcm, x;

System.out.println("Enter a numerator for fraction 1: ");

n1 = in.nextInt();

System.out.println("Enter a denominator for fraction 1: ");

d1 = in.nextInt();

if (d1 > 0) {

System.out.println();

} else {

System.out.println("Invalid denominator");

System.exit(0);

}

System.out.println("Enter an operator: ");

o = in.next().toCharArray()[0];

System.out.println("Enter a numerator for fraction 2: ");

n2 = in.nextInt();

System.out.println("Enter a denominator for fraction 2: ");

d2 = in.nextInt();

if (d2 > 0) {

System.out.println();

} else {

System.out.println("Invalid denominator");

System.exit(0);

}

switch(o){

case '*':

n = n1 * n2;

d = d1 * d2;

break;

case '/':

n = n1 * d2;

d = n2 * d1;

break;

case '+':

int max=n1>d1?n1:d1;

int min=n1

for(int i=1;i<=min;i++)

x=max*i;

if (x%min==0)

lcm=x;

tempN1=n1*m1;

tempN2=n2*m2;

m1=lcm/d1;

m2=lcm/d2;

n = tempN1 + tempN2;

d = lcm;

break;

case '-':

n = tempN1 - tempN2;

d = lcm;

break;

default:

System.out.println("Illegal Operator: "+ o);

break; }

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值