Помогите? Я не знаю, почему я получаю эту ошибку. Я получаю в строке 39:
term[1] = differentiate(Coeff[1], exponent[1]);
Как я могу исправить эту проблему?
Полный список кодов:
public class Calcprog {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int numTerms = 7;
double[] Coeff = new double[6];
double[] exponent = new double[6];
String[] term = new String[6];
System.out.println("Enter the number of terms in your polynomial:");
numTerms = input.nextInt();
while (numTerms > 6) {
if (numTerms > 6) {
System.out.println("Please limit the number of terms to six.");
System.out.println("Enter the number of terms in your polynomial:");
numTerms = input.nextInt();
}
}
for (int i = 1; i < numTerms + 1; i++) {
System.out.println("Please enter the coefficient of term #" + i + " in decimal form:");
Coeff[i] = input.nextDouble();
System.out.println("Please enter the exponent of term #" + i + " in decimal form:");
exponent[i] = input.nextDouble();
}
term[1] = differentiate(Coeff[1], exponent[1]);
}
public String differentiate(int co, int exp) {
double newco, newexp;
String derivative;
newexp = exp - 1;
newco = co * exp;
derivative = Double.toString(newco) + "x" + Double.toString(newexp);
return derivative;
}
}
Вы пытаетесь передать двойные аргументы методу, который принимает ints, который требует кастинга, который может привести к потере информации.
Вы можете заставить его работать с помощью явного приведения:
term[1] = differentiate((int)Coeff[1], (int)exponent[1]);
Или вы можете изменить свой метод differentiate
чтобы принимать двойные аргументы, которые, вероятно, будут иметь больше смысла:
public String differentiate(double co, double exp)
ваш метод не является статичным, и вы вызываете в main, который является статическим, помните, что нестационарный метод может быть прямым доступом в статическом методе, вам нужно создать экземпляр класса для доступа к этому методу, а также параметр, который вы используете передача - double
а не int
. Ваш метод должен быть похож на то, что public static String differentiate(double co, double exp){
измените типы аргументов дифференцированного метода на двойной. Это должно выглядеть следующим образом
public String differentiate(double co, double exp){
...
}