2017-02-16 51 views
-2

我想製作一個程序,它需要一個三位數的數字並將其分解爲數字。我沒有編譯或運行問題,但最終輸出給我0,0和0.用數組編號的數字程序

我對數組並不熟悉,所以我只是嘗試不同的東西。請讓我知道問題是什麼,或者有什麼我可以做的來改進我的代碼。

import java.util.Scanner; 

public class numToDig{ 

    public static void main(String[] args) { 

     Scanner s=new Scanner(System.in); 

     System.out.print("enter a three digit number: "); 

     int n=s.nextInt(); 

     int arr[]=new int[n]; 

     System.out.println("The digits are: " + arr[0] + ", " + arr[1] + ", and " + arr[2]); 
    } 
} 
+1

的問題是,你初始化數組,但不能與數字填充。作爲int(原始)的一個數組,初始化爲ceros –

+0

請參閱文檔教程以獲取有關數組處理的幫助= https://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html – mjhouseman

+2

「我不是所以對數組非常熟悉,所以我只是在嘗試不同的東西。「熟悉數組然後,不要在黑暗中行走:https://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html。 'new int [n];'不會做你認爲它做的事。對於這個任務,你可能想研究整數除法和模運算符。 – Pshemo

回答

0

試試這個

Scanner sc=new Scanner(System.in); 

System.out.print("enter a three digit number: "); 

String digits = sc.nextLine(); 
String arr[]=digits.split(""); 
System.out.println("The digits are: " + arr[0] + ", " + arr[1] + ", and " + arr[2]); 

OR

Scanner sc=new Scanner(System.in); 

System.out.print("enter a three digit number: "); 

String digits = sc.nextLine(); 
char arr[]=digits.toCharArray(); 
System.out.println("The digits are: " + arr[0] + ", " + arr[1] + ", and " + arr[2]); 
0

一種可能性:

@Test 
public void testIntTocharArray() { 
    int num = 123; 
    char[] nums = ("" + num).toCharArray(); 
    int[] digits = new int[nums.length]; 

    for(int i=0;i<nums.length;i++){ 
     digits[i] = Character.getNumericValue(nums[i]); 
     System.out.print(digits[i] + " "); 
    } 

} 
0

你在做什麼是創造有n個長度的數組。默認情況下,數組的所有元素都是0,因此輸出會給出0,0,0。首先,您應該在任何輸入之前創建一個數組長度爲3的數組。然後你應該在一個循環中得到輸入,並用這些輸入來填充數組。