2016-11-18 34 views
0

嗨所以我的作業是: 1)提示用戶輸入單元C2
2的數目)聲明爲C元素的整數陣列單元[]
3)提示用戶輸入時間步數N
3)提示用戶輸入包含1的單元格索引(輸入負索引完成)
4)使用定義的規則運行N個時間步的元胞自動機以上
5)在每個時間步驟中,顯示單元格,如果單元格包含1,a空格(如果單元格包含0),則打印'#'0爪哇(未如此)簡單格式

所需的輸出是:

Enter number of cells (<= 80): 10 
Enter number of time steps: 10 
Enter the index of occupied cells (negative index to end): 4 6 -1 


    # # 
    #### 
    ## # 
### ## 
# #### 
### # 
# # ## 
###### 
# # 
# ## 
# ### 

到目前爲止我的代碼是這樣的:

import java.util.Scanner; 

class P7{ 
    public static void main(String[] args){ 
     int i, N, C, index; 
     Scanner in = new Scanner(System.in); 

     System.out.println("Enter number of cells(<=80):"); 
     C = in.nextInt(); 
     int[] cell = new int[C]; 
     System.out.println("Enter number of time steps:"); 
     N = in.nextInt(); 
     System.out.println("Enter the index of occupied cells(-num to end):"); 
     for(i = 0; i < C; i++){ 
      cell[i] = 0; 
     } 
     while(true){ 
      index = in.nextInt(); 

      if(index < 0){ 
      break; 
      } 
      cell[index] = 1; 
     } 
     for(i = 0; i < N; i++) 
      updateCells(cell); 
      displayCells(cell); 
    } 


    public static void updateCells(int array[]){ 
     int i; 
     int[] temp = new int[array.length]; 
     for(i = 1; i < array.length - 1; i++){ 
      if(array[i]==1 && array[i-1]==1 && array[i+1]==1) 
      temp[i] = 0; 
      else if(array[i]==1 && array[i-1]==1 && array[i+1]==0) 
      temp[i] = 1; 
      else if(array[i]==0 && array[i-1]==1 && array[i+1]==1) 
      temp[i] = 1; 
      else if(array[i]==0 && array[i-1]==1 && array[i+1]==0) 
      temp[i] = 0; 
      else if(array[i]==1 && array[i-1]==0 && array[i+1]==1) 
      temp[i] = 1; 
      else if(array[i]==1 && array[i-1]==0 && array[i+1]==0) 
      temp[i] = 1; 
      else if(array[i]==0 && array[i-1]==0 && array[i+1]==1) 
      temp[i] = 1; 
      else if(array[i]==0 && array[i-1]==0 && array[i+1]==0) 
      temp[i] = 0; 
     } 
     for(i = 0; i < array.length; i++){ 
      array[i] = temp[i]; 
     } 
} 
public static void displayCells(int data[]){ 
     int i; 
     for(i=0;i < data.length; i++){ 
      if(data[i] == 1) 
      System.out.println("#"); 
      else if(data[i] == 0) 
      System.out.println(" "); 
     } 
    } 
} 

這是我的電流輸出:

Enter number of cells(<=80): 10 
Enter number of time steps: 3 
Enter the index of occupied cells(-num to end): 
1 
2 
3 
4 
-1 

# 
# 
# 
# 

任何和所有幫助將不勝感激:D

+1

'println'閱讀該功能的文檔。另外,當你在那裏時,看看'print'功能 – njzk2

回答

0

我其實不明白你想做什麼,試試這個如果這可能會有所幫助。如果你有書面或任何pdf格式的問題,那麼我可以告訴你。最佳

import java.util.Scanner; 

public class P7{ 
    public static void main(String[] args){ 
     int i, N, C, index; 
     Scanner in = new Scanner(System.in); 

     System.out.println("Enter number of cells(<=80):"); 
     C = in.nextInt(); 
     int[] cell = new int[C]; 
     System.out.println("Enter number of time steps:"); 
     N = in.nextInt(); 
     System.out.println("Enter the index of occupied cells(-num to end):"); 
     for(i = 0; i < N; i++){ 
      cell[i] = 0; 
     } 
     while(true){ 
      index = in.nextInt(); 

      if(index < 0){ 
      break; 
      } 
      cell[index] = 1; 
     } 
     for(i = 0; i < N; i++) 
      updateCells(cell); 
      displayCells(cell); 
    } 
    public static void updateCells(int cell[]){ 
     int i; 
     int[] temp = new int[cell.length]; 
     for(i = 1; i < cell.length - 1; i++){ 
      if(cell[i]==1 && cell[i-1]==1 && cell[i+1]==1) 
      temp[i] = 0; 
      else if(cell[i]==1 && cell[i-1]==1 && cell[i+1]==0) 
      temp[i] = 1; 
      else if(cell[i]==0 && cell[i-1]==1 && cell[i+1]==1) 
      temp[i] = 1; 
      else if(cell[i]==0 && cell[i-1]==1 && cell[i+1]==0) 
      temp[i] = 0; 
      else if(cell[i]==1 && cell[i-1]==0 && cell[i+1]==1) 
      temp[i] = 1; 
      else if(cell[i]==1 && cell[i-1]==0 && cell[i+1]==0) 
      temp[i] = 1; 
      else if(cell[i]==0 && cell[i-1]==0 && cell[i+1]==1) 
      temp[i] = 1; 
      else if(cell[i]==0 && cell[i-1]==0 && cell[i+1]==0) 
      temp[i] = 0; 
     } 
     for(i = 0; i < cell.length; i++){ 
      cell[i] = temp[i]; 
     } 
} 
public static void displayCells(int cell[]){ 
     int i; 
     for(i=0;i < cell.length; i++){ 
      if(cell[i] == 1) 
      System.out.print("#"); 
      else if(cell[i] == 0) 
      System.out.print(" "); 
     } 
    } 
}`enter code here`