I have the following program. In a nutshell, I creates an array of 3 consecutive ints and the user has to guess what those numbers are, knowing that they are between 0 and 7, this is from Head First Java. In the book, the code has a bug that is made on purpose and they challenge you to fix it. As you can see bellow, every time a user's guess matches a int in the array, the NumOfHits is increased by one. When the NumOfHits is 3 (the length of the array) the game finishes.
The bug is that if you guess 1 and 1 is in the array, if you type in 1, 3 times, I will increase the NumOfHits 3 times and end the game as if you had won. To solve the bug, you need to find a way to tell the program that if the user already guessed that number, it should no longer be taken into account and we shouldn't increase the NumOfHits if the same number is provided.
I "fixed" this by searching for the index of the number that matches an int of the array, and changing that index's value to 100, since the user knows that the numbers are between 0 and 7, they will not submit 100.
The result? If the user submits 2 and 2 is in the array, the value of its indexed is replaced by 100, so that if the user submits 2 again it doesn't count as a match.
Please see the comments in the code
import java.io.*; import java.util.Arrays;
class DotCom{ int NumOfHits = 0; int[] LocationCells; public void setLocationCells(int[] locs){ LocationCells = locs;
[Code] .....
The code works, but for some reason, some times I get a ArrayIndexOutOfBoundsException run time error and it appears to be somehow random. This is what I saw on the command line earlier
C:Userspablo.alvarez>java launchDotCom
Enter a number: 3 missed Enter a number: 4 hit Enter a number: 5 hit Enter a number: 7 missed Enter a number: 5 missed Enter a number: 4 missed Enter a number: 3 missed Enter a number: 4 missed Enter a number: 5 missed Enter a number: 6
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: -1 at DotCom.checkYourSelf(launchDotCom.java:16) at DotComGame.startGame(launchDotCom.java:59) at launchDotCom.main(launchDotCom.java:72)
As you can see here, 3 returned 'missed' but 4 and 5 returned hit. Since the numbers are in sequence and are only 3, it makes sense that the last number is 6 (4,5,6). You will then notice that when I submitted 3 and 4 again it returned 'missed' as expected, because the numbers were already matched earlier, but then when I submitted 6, it returned the error seen above.
Sometimes this doesn't happen at all, sometimes it happens at the 2nd guess or third, it appears to be somehow random. I'm familiar with the error message, but I don't see where I'm using an index that doesn't exist in the array. The only time I'm referencing an array index is on
LocationCells[index] = 100;
but the index variable will only hold a value if the int submitted by the user matches on of the values in one of the indexes, so how is it that I'm going over the number of available indexes?
I have been working on this assignment for a bit now. I seem to have most of the logic of it down, as far as I can tell, but I seem to have fallen into a bit of a brain lapse when it comes to invoking methods I've made in my main method. Here's the code:
package Module5; import java.util.Scanner; public class Exercise6Nine { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.println("Enter 10 numbers."); double[] numbers = new double[10];
[Code] .....
My question is, in my main method, I have code in there to attempt to call my method "min" from below, and to use the result of the min's calculations and print them via my main. Only, I can't seem to properly invoke the method from my main method!
Also, if you could check over my min method and see if anything blatantly wrong is there and let me know, that would be great.
Looking over my question, and it seems there is no EDIT button, but I may as well put the assignment parameters here, since I asked for double checking on my method. Write a method that finds the smallest element in an array of double values using the following header:
public static double min( double[ ] array )
Write a test program that prompts the user to enter 10 numbers, invokes this method to return the minimum value, and displays the minimum value.
Write a function that accepts an array of non-negative integers and returns the second largest integer in the array.
Return -1 if there is no second largest.
The signature of the function is int f(int[ ] a)
Examples:
if the input array isreturn{1, 2, 3, 4}3{{4, 1, 2, 3}}3{1, 1, 2, 2}1{1, 1}-1{1}-1{}-1
In the signature what I understood is, I should write my function with the given signature,
The return type is "int"
method name is "f"
parameter is "a" right ?
Writing my doubts beside the particular line in the code
public static void main() // In the answer why they didn't use the class ?
In main method why they didn't use parameters ?(String[] args)
{ a1(new int[]{1, 2, 3, 4}); // what is "a1" here is it array name ? this line initializing the array ? a1(new int[]{4, 1, 2, 3}); a1(new int[]{1, 1, 2, 2}); a1(new int[]{1, 1}); a1(new int[]{1}); a1(new int[]{}); }
static int a1(int[] a) // what is "a" here parameter ? and "a1" is method name ? why they used the array name and method name same ?
{ int max1 = -1; int max2 = -1; for (int i=0; i<a.length; i++)
I have been trying to space out output on a Java console window so that I have three columns with 6 rows of data from three different arrays. The code I have so far outputs the data with no problem however the spacing between the columns is uneven. My loop so far is made up as follows
for (int i = 0; i < printVotes.length; i++) { System.out.println(printNames[i] + " " + printVotes[i] + " " + printPrecent[i] + "%"); }
As you can see I have been manually adding the space between each element of the array but this means that the space between each element is different because the size of each element is different if work out a loop that works out an even amount of space between the elements and then print this along with the elements ....
So I'm trying to write a method which returns the number of vowel characters in arraylist. My idea is to convert the arraylist element by element to array each time iterating through the array counting the vowels of that element. When I started I immediately got an error(surprise, surprise). Excuse me if the problem is too simple, but I am very new to programming.
At line 9 I get the following error "Type mismatch: cannot convert from String to int". I want to get the element at this position, not to convert to int..
ublic class One { public static void main(String[] args) { ArrayList<String> bla = new ArrayList<String>(); bla.add("aaa"); bla.add("brr"); bla.add("unn"); } public static ArrayList<String> averageVowels (ArrayList<String> list){ String[] arrListWord = list.toArray(new String[list.get(0)]); return list; } }
So I have an array which holds 19 elements, each element represents a value of 'income'. I'm trying to code the graph so that each bar will represent the value of each element of the array (income). I have been given the code ' for (int Bar = 0; Bar < array of values.length; bar++);' however i'm unsure if this is how to do it, or what to add to this code to make it work.
So I just finished up my term project and have everything working but I wanted to make one slight adjustment to the code and Im not exactly sure what I'm doing wrong - it involves retrieving a set element from an array from a different class so to some what show what I have going on:
public class example1 { private example2 Examp; public example1() { Examp = new example2(); } public void getArray() { if(Var >= 10 && Var <= 20) {
[Code] ....
I have an if statement that looks at a sum of numbers, and predetermined upon the set of numbers I want it to output a message by calling the index number in the array and returning the string. I currently just have the message in the if statements but would be nicer to just pull them from a different class to keep it consolidated.
While shuffling an array, if I use Collections.shuffle(), there is a chance that an element in a particular index in the input array can be present in the same index in the output array. Is there an existing method that handles that too? If not, how can I best handle it? After shuffling, will swapping every element with the last element work?
I'm trying to iterate through an array of integers and find the start position of the part of the array containing the most consecutive 1s.
For example given the array {1,3,1,1,1,1,5,3,2,1,1}, the method should return 2 and given {1,4,5,1,1,1,5,1} the method should return 3.
So far, I've managed to retrieve the element where the consecutive 1s begin. However, I'm unsure how to get the index of this element and this implementation doesn't work if there is more than one set of consecutive 1s.
public class GetIndex { public static int getPosition(int[] myArray) { int index = 0; int tracker = 0; int mostOnes = 0; for(int i = 0; i < myArray.length; i++) {
the problem I'm having is I want to use a mutator method to set data for an array element. The code I have so far is:
public void addProduct(String productName) //Goes through and sets the name of a product and assigns it to the array { int index; for (index = 0; index < product.length(); index++) { product[index].setName(productName); numberOfProducts++; } }
The array was initialised like this:
Product[] product = new Product[3];
And the setName(String) method is just your typical mutator method.However, in Eclipse, I have an error messages. It is:
"-The method setName(String[]) is undefined for the type String" .....
import java.io.IOException; public class Largestcolumn { public static void main ( String[] args ) throws IOException { int largest = 0; int newnumber = 0; int[][] data = { {3, 2, 5},
[Code] ....
When I run this code, I get this following output: The largest element in column 0 is: 9. Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4 at largestcolumn.Largestcolumn.main(Largestcolumn.java:27) Java Result: 1
It outputs the first column's maximum element but then throws an out of bounds error. I'm new to Java and I can't figure out how to fix my code so that it will work for this multidimensional array and output the maximum elements in all of the columns.
Nested for-loops always throw me in a loop.I found a snippet that uses 2 for-loops to check if there is a duplicate element in the array:
/* * brute force way of checking if array contains duplicates in Java comparing each elements to all other elements of array complexity on order of O(n^2) not advised in production */ public static boolean bruteforce(String[] input) { for (int i = 0; i < input.length; i++) { for (int j = 0; j < input.length; j++) { if (input[i].equals(input[j]) && i != j) { return true; } } } return false; }
Let us say we have: String[] input = new String[] {"one","two","three","one"}
I am trying to write a code that asks the user to input ten numbers and then finds and displays the smallest number out of the ones given. I am supposed to implement arrays into the program to do this. But the problem I have run into is that when I compile the code in jgrasp, I am given several error messages and I am not quite sure what I have done wrong. I'm assuming it is either a syntax or a logical error on my part but reading over the code I do not understand what is causing these errors.
This is the most current draft of my code:
import java.util.Scanner; public class Exercise7_9 { public static void main(String[] args) { double[] numbers = new double[10]; //Enter ten double numbers: Scanner(System.in) java.util.Scanner input = new java.util.Scanner(System.in); System.out.println("Please enter ten numbers: ");
[Code] ....
/* Sample Run: Enter ten numbers: 1.9, 2.5, 3.7, 2, 1.5, 6, 3, 4, 5, 2 */
And these are the exact error messages:
----jGRASP exec: javac -g Exercise7_9.java Exercise7_9.java:35: error: '.class' expected if (double m > list[i]) { ^ Exercise7_9.java:35: error: illegal start of expression if (double m > list[i]) {
Started learning about Array's I'm doing an exercise where you create a for loop that randomly assigns values to each element within the array, but where is my code going wrong?
import java.util.Scanner; public class ArrayExamples{ public static void main(String[] args) { Scanner input = new Scanner(System.in); double exampleArray[] = new double[5]; System.out.print("Enter a Number: "); int num1 = input.nextInt();
I am new to Java and would like to ask how to do this question specifically:
Code a Java method that accepts a String array and a String. The method should return true if the string can be found as an element of the array and false otherwise. Test your method by calling it from the main method which supplies its two parameters (no user input required). Use an array initialiser list to initialise the array you pass. Test thoroughly.
I have an array with the following characters {'E', 'L','E','P','H','A','N','T','P','O'}
now, I need an array that will store the first array such that only the occurence occurs e.g {'E','L','P','H','A','N','T','O'} Notice that the characters 'E' and 'P' occur twice and as a result were not repeated the second time in the new array.
How would one go about this using the counting elements technique?
I tried this but not sure how to use the counting elements technique.
char [] arr = new char{'E', 'L','E','P','H','A','N','T','P','O'}; char[] bucket = new char[(arr[0] * arr.length)]; for (int i = 0; i < len; i++) bucket[arr[i]]++;
How do I compare a String to each element of a string array?
For example:
int headscount = 0; if (coins[i].equals("heads")){ headscount++; System.out.println("b" + headscount); }
This doesn't give me the right value because the IDE says that equals() is an incompatible type. I also tried changing the "heads" to an variable, but the results remains the same.
I want to run a program to add an element as the third element of stack without changing rankings, I am trying to use two stack and I don't know how to push the top of first stack in the second: push(top(); this line
public void ADD(int element,int i ){ if(isEmpty(true)){ push(element);} else{ makeNull(); while((i<=3) && (isEmpty(false))){ push(top(); }
So I need to generate 10 random integers in the range 1-20 but i have to store them in an array called numbers. Then I have to call a method called displayArray which displays the contents of the array and for the assignment i have to use a for loop to traverse the array. The method header for the displayArray method is:
public static void displayArray(int[] array)
This is what I have done
public class RandomIntegers { static int numbers = 0; public static void displayArray(int[] array) { System.out.println(numbers + "Numbers Generated");