Just nu i M3-nätverket
Gå till innehåll

Hur ändrar jag arrayens värde?


canDen

Rekommendera Poster

Hej!

Den här koden ska räkna ut linjens ekvation med de värden användaren matar in. I metoden calcLine är det meningen att om användaren tex matar in n =5 så ska alla y-värden från 1 tom n-värdet som i det här fallet är fem räknas ut. Men jag får enbart värdet av de inmatade värdena.

ex trycker jag in k=2, n=5, m=2 så får jag en utskrift som ser ut så här


y(1) = 12

y(2) = 12

y(3) = 12

y(4) = 12

y(5) = 12

alla y-värden har samma värde. och det är ju helt galet. Det ska vara:


y(1) = 4

y(2) = 6

y(3) = 8

y(4) = 10

y(5) = 12

 

Varför uppdateras inte y-värdet i min kod?



 

 

public static void main(String[] args) {

Scanner in = new Scanner(System.in); 

 

System.out.print("\n" + "Ange k: ");

    int k = in.nextInt();

    System.out.print("Ange n: ");

    int n = in.nextInt();

    System.out.print("Ange m: ");

    int m = in.nextInt();

  printLine (k,n,m);

 

 

}

 

public static int calcPoint (int k, int n, int m)

{

int y;

y = k*n + m;

return y;

 

}

public static int [] calcLine (int k, int n, int m)

{

   int []array = new int [n];

    

     if (n != 0) {

 

for(int x = 1; x <= array.length; x++)

array[x-1] = calcPoint(k,n,m); 

       }

   

     return array;

     

}

 

public static void printLine (int k, int n, int m)

{

int[] answer = calcLine(k,n,m);

System.out.println("---RESULTAT----------");

 

for (int i = 1; i <= answer.length; i++) {

System.out.println("y(" + i + ") = " + answer[i-1]);

}

       

     

}  

}

Länk till kommentar
Dela på andra webbplatser

Så vitt jag kan se räknar du alltid y så här:

y = k*n + m;

där k, n och m är samma tal varenda gång, dvs de framräknade y-värdena är oberoende av x.

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...