我希望它從鍵盤中獲取 10 個值,并找出 10 個輸入中的任何一個是否包含 0 或 1,如果是,則陣列中的位置是什么?
example
Input = 9 15 91 1 0 22 31 67 88 33
output = 4 found number 1, at position 2 3 4 7
1 found number 0, at position 5
5 found others, at position 1 6 8 9 10
我不能再寫了,因為我還是不明白。請給我建議我嘗試撰寫它,但輸出仍然不正確。
public static int SequentialSearch(int number[], int key_1, int key_0) {
int looker;
for (looker = 0; looker < number.length; looker ) {
if (number[looker] == key_1)
return looker;
if (number[looker] == key_0)
return looker;
}
return -1;
}
public static void Loopcheck(int number[]) {
int key_1, key_0, others_key;
for (int count_check = 0; count_check < number.length; count_check ) {
if (number[count_check] / 10 == 1 || number[count_check] % 10 == 1) {
key_1 = 1;
break;
} else if (number[count_check] / 10 == 0 || number[count_check] % 10 == 0) {
key_0 = 0;
break;
}
}
}
public static int Print(int number[], int location) {
for (int loop = 0; loop < number.length; loop )
if (location > -1)
System.out.print(" 0 : " location);
return 0;
}
public static void main(String[] args) {
Scanner Sc = new Scanner(System.in);
int value1, value0, location, key1;
int[] number = new int[10];
for (int count = 0; count < number.length; count ) {
number[count] = Sc.nextInt();
}
int item1 = 1;
int item0 = 0;
location = SequentialSearch(number, item1, item0);
Loopcheck(number);
Print(number, item1);
}
}
uj5u.com熱心網友回復:
由于您正在尋找特定字符,我建議您改用 String 或 char 陣列。您可以考慮的一些代碼可能會讓您了解如何解決問題:
Scanner sc= new Scanner(System.in); //System.in is a standard input stream
System.out.print("Enter first number- ");
int a= sc.nextInt();
System.out.print("Enter second number- ");
int b= sc.nextInt();
System.out.print("Enter third number- ");
int c= sc.nextInt();
String Input = String.join(" ",Integer.toString(a),Integer.toString(b),Integer.toString(c));
int i = 0;
System.out.println(Input);
while(i<Input.length()){
if(Input.charAt(i)=='0') System.out.println(String.join(" ","0 at position",Integer.toString(i 1)));
if(Input.charAt(i)=='1') System.out.println(String.join(" ","1 at position",Integer.toString(i 1)));
i ;
}
uj5u.com熱心網友回復:
你可以使用這樣的方法,
public void haszero(int numbers[])
{
int position;
for(position = 0; position < numbers.size; position )
{
while(numbers[position] > 0)
{
if(numbers[position] % 10 == 0)
system.out.print("0 at " position)
number=number/10;
}
}
}
然后你可以使用與此相同的方法 1. 或者你也可以做這樣的事情
for(int position = 0; position < array.size; position )
{
if (String.valueOf(array[position]).contains("0"))
system.out.print("0 at " position);
}
uj5u.com熱心網友回復:
我會提供的最有影響力的建議是:
將您的輸入存盤為string或char[]代替int[].
解決方法:創建一個集合(如串列或陣列)來保存您的有效索引,并一次遍歷您輸入的一個字母,將滿足您條件的有效索引添加到您的集合中。實作一個“PrettyPrint()”,將您的收藏轉換為一個不錯的輸出。
uj5u.com熱心網友回復:
我繼續撰寫了一個使用 int 陣列的編碼解決方案。這是我后來的一項測驗的測驗結果。
Type 10 values: 0 1 2 3 4 5 6 7 8 9
1 found number 1, at position 2
1 found number 0, at position 1
8 found others, at position 3 4 5 6 7 8 9 10
Type 10 values: 12 23 34 45 127 21 84 0 73 364
3 found number 1, at position 1 5 6
1 found number 0, at position 8
6 found others, at position 2 3 4 7 9 10
Type 10 values:
要退出程式,您只需按 Enter 鍵。
我的程序是維護三個 int 陣列。一個保存著所有的索引。一個持有所有零的索引。一個保存所有其他值的索引。
我一步一步地撰寫了這段代碼,一路測驗了每一步。我可能運行了兩三打測驗,每一次測驗代碼的一小部分。
我做的第一件事是讓輸入回圈正常作業。我沒有測驗非數字輸入,但可以輕松添加該測驗。我也沒有將輸入限制為 10 個數字。如果需要,您可以輸入 15 或 20 個數字。最后,我沒有將輸入限制為兩位數。查找數字的代碼應該適用于任何正整數值。
接下來,我撰寫了一個方法來確定一個數字是否包含特定數字。該方法適用于任何數字,而不僅僅是零或一。
在那之后,就是讓輸出看起來正確的問題。
這是完整的可運行代碼。
import java.util.Scanner;
public class ZeroAndOne {
public static void main(String[] args) {
new ZeroAndOne().processInput();
}
public void processInput() {
Scanner scanner = new Scanner(System.in);
String line;
do {
System.out.print("Type 10 values: ");
line = scanner.nextLine().trim();
String[] parts = line.split("\\s ");
if (!line.isEmpty()) {
int[] input = new int[parts.length];
for (int index = 0; index < parts.length; index ) {
input[index] = Integer.valueOf(parts[index]);
}
System.out.println(processArray(input));
}
} while (!line.isEmpty());
scanner.close();
}
private String processArray(int[] input) {
int[] zeros = new int[input.length];
int[] ones = new int[input.length];
int[] other = new int[input.length];
int zeroIndex = 0;
int oneIndex = 0;
int otherIndex = 0;
for (int index = 0; index < input.length; index ) {
boolean isOther = true;
if (isDigit(input[index], 0)) {
zeros[zeroIndex ] = index;
isOther = false;
}
if (isDigit(input[index], 1)) {
ones[oneIndex ] = index;
isOther = false;
}
if (isOther) {
other[otherIndex ] = index;
}
}
StringBuilder builder = new StringBuilder();
builder.append(oneIndex);
builder.append(" found number 1, at position ");
builder.append(appendIndexes(ones, oneIndex));
builder.append(System.lineSeparator());
builder.append(zeroIndex);
builder.append(" found number 0, at position ");
builder.append(appendIndexes(zeros, zeroIndex));
builder.append(System.lineSeparator());
builder.append(otherIndex);
builder.append(" found others, at position ");
builder.append(appendIndexes(other, otherIndex));
builder.append(System.lineSeparator());
return builder.toString();
}
private boolean isDigit(int value, int digit) {
if (value == 0 && digit == 0) {
return true;
}
while (value > 0) {
int temp = value / 10;
int remainder = value % 10;
if (remainder == digit) {
return true;
}
value = temp;
}
return false;
}
private StringBuilder appendIndexes(int[] array, int length) {
StringBuilder builder = new StringBuilder();
for (int index = 0; index < length; index ) {
builder.append(array[index] 1);
if (index < (length - 1)) {
builder.append(" ");
}
}
return builder;
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/318381.html
上一篇:使用視圖系結與片段Android
下一篇:從片段中改變活動的按鈕狀態
