Multiple arrays: Key and value.

Click For Summary
SUMMARY

The discussion centers on a Java programming challenge involving two arrays: keysList and itemsList. The user initially attempted to print values from itemsList corresponding to keysList elements greater than 100 but mistakenly divided the itemsList values by 2. After receiving feedback, the user corrected their code to directly print itemsList[i] instead of the divided value, successfully achieving the expected output. The final solution correctly outputs values from itemsList without unnecessary modifications.

PREREQUISITES
  • Java programming fundamentals
  • Understanding of arrays in Java
  • Basic conditional statements in Java
  • Input and output operations in Java
NEXT STEPS
  • Study Java array manipulation techniques
  • Learn about Java conditional statements and their applications
  • Explore debugging techniques in Java programming
  • Practice writing Java programs that involve multiple arrays
USEFUL FOR

Java developers, programming students, and anyone looking to improve their skills in array handling and conditional logic in Java.

lypena35
Messages
18
Reaction score
0
Hello, I am stuck on this question.The bold part is where I am stuck. I was able to get at least 2 out of the 3 test outputs but I can't seem to get the last one. I tired taking out the dividing by 2 but then the first test output doesn't work. Thank you.

Question:
For any element in keysList with a value greater than 100, print the corresponding value in itemsList, followed by a space. Ex: If keysList = {42, 105, 101, 100} and itemsList = {10, 20, 30, 40}, print:
20 30
Since keysList[1] and keysList[2] have values greater than 100, the value of itemsList[1] and itemsList[2] are printed.
This is my code

Code:
import java.util.Scanner;

public class ArraysKeyValue {
   public static void main (String [] args) {
      final int SIZE_LIST = 4;
      int[] keysList = new int[SIZE_LIST];
      int[] itemsList = new int[SIZE_LIST];
      int i = 0;

      keysList[0] = 42;
      keysList[1] = 105;
      keysList[2] = 101;
      keysList[3] = 100;

      itemsList[0] = 10;
      itemsList[1] = 20;
      itemsList[2] = 30;
      itemsList[3] = 40;
[B]
     * for(i=0;i<SIZE_LIST;i++){
         if(keysList[i]>100){
            System.out.print(itemsList[i]/2+itemsList[i]/2+(" "));
           
         }
         
         }*
[/B]
      System.out.println("");

      return;
   }
}
This is the test output.

Testing with keysList ={42, 105, 101, 100} and
itemsList = {10, 20, 30, 40}
Your output: 20 30

Testing with keysList ={99, 100} and
itemsList = {14, -11}
Your output:

✖ Testing with keysList ={101, 312, 541, 120, 199, 114, 107, 221, 987, 876} and
itemsList = {1, 2, 17, 98, 75, 96, 3, 492, -14, -11}
Expected output: 1 2 17 98 75 96 3 492 -14 -11
Your output: 0 2 16 98 74 96 2 492 -14 -10
 
Last edited by a moderator:
Technology news on Phys.org
Why do you print [m]itemsList/2 + itemsList/2[/m] instead of [m]itemsList[/m]? Where does the problem statement say something about dividing by 2?
 
I tired it with just the itemsList but I received a error. I now understand the error must have been with another part of my code. The division was only a temporary fix to answer the first two outputs but it was to specific, so I needed a more generic answer. I retyped my portion of the code in and I used the itemsList as you suggested and it worked this time. Thank you very much for your help. I appreciate it.
 

Similar threads

  • · Replies 29 ·
Replies
29
Views
3K
  • · Replies 15 ·
Replies
15
Views
4K
Replies
20
Views
2K
  • · Replies 7 ·
Replies
7
Views
4K
  • · Replies 23 ·
Replies
23
Views
2K
  • · Replies 5 ·
Replies
5
Views
4K
  • · Replies 17 ·
Replies
17
Views
3K
Replies
1
Views
5K
  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 4 ·
Replies
4
Views
2K