首页 > 解决方案 > 在给定本金、利率和时间的情况下,编写一个程序来找出单利和复利之间的区别

问题描述

import java.util.*;
public class SICI{
    public static void main( double rate, double time, double principal ){
        Scanner in = new Scanner(System.in);
        double s,c,d,ib;
        s= principal*rate*time/100.0;
        System.out.println("SI:" +s);
        ib=(1+(rate/100.0));
        c=principal*(Math.pow(ib,time)-1);
        System.out.println("CI:" +c);
        d=(float) c-s;
        System.out.println("Difference:" + d);
        sc.close();
    }
}

这是我的解决方案,但是在尝试运行时,它显示:

Main method not found in the file, please define the main method as: public static void main(String[] args)

有人可以帮忙吗?

标签: java

解决方案


您不能更改主要方法的签名。你必须保持原样,

public static void main(String[] args){
    ...
}

你可以做的是,用你需要的参数编写另一个静态方法,然后从主函数中调用它。

public static void main(String[] args) {
    double rate, time, principal;
    Scanner sc = new Scanner(System.in);
    System.out.println("Enter rate: ");
    rate = sc.nextDouble();
    System.out.println("Enter time: ");
    time = sc.nextDouble();
    System.out.println("Enter principal: ");
    principal = sc.nextDouble();
    double diff = calculateDifference(rate,time,principal);
    System.out.println("difference: "+ diff);
}

在 calculateDifference 方法中,传递参数并完成工作:

public static double calculateDifference (double rate, double time, double principal)
{
    double s, c, d, ib;
    s = principal * rate * time / 100.0;
    System.out.println ("SI:" + s);
    ib = (1 + (rate / 100.0));
    c = principal * (Math.pow (ib, time) - 1);
    System.out.println ("CI:" + c);
    d = (float) c - s;
    return d;
}

推荐阅读