對一個數組進行接收進行操作后輸出。輸入三個操作數abc,將數組下標a到b的數字加上c;輸入四個操作數abcd,將下標c到d的數字復制到a到b,可以借用一個中間量數組實現;兩個操作數ab,將數組下標a到b的數字加和輸出。可以通過重寫三個方法,在主函數里通過循環調用。重點就是判斷數字的操作具體是執行什么,考慮使用字符串接收一行數據。
①輸入三個數字和一個數組,返回一個數組
②輸入四個數字和一個數組,返回一個數組
③輸入兩個數字和一個數組,返回一個數字
④循環m次上述操作
進行了優化,直接將數組變成全局變量,每次修改不用返回新的數組,只有一個輸出輸出即可。
代碼如下👇
static int[] arr1= new int[100];public static void main(String[] args) {Scanner scan=new Scanner(System.in);int case1=scan.nextInt();//實列int n=scan.nextInt();//數組個數int m=scan.nextInt();//字符串個數,操作次數arr1=new int[n+1];for (int i = 1; i <= n; i++) {arr1[i]=scan.nextInt();//原數組}String[] s=new String[m];int arr2[][]=new int[m][10];for (int i = 0; i < m; i++) {s[i]=scan.nextLine();s[i]=s[i].replaceAll(" ","");}for (int i = 0; i < m; i++) {for (int j = 0; j < s[i].length(); j++) {arr2[i][j]=s[i].charAt(j)-'0';}}for (int i = 0; i < m; i++) {if (s[i].length()==3) {caozuo(arr2[i][0], arr2[i][1],arr2[i][2]);}else if (s[i].length()==4) {caozuo(arr2[i][0], arr2[i][1],arr2[i][2],arr2[i][3]);}else if (s[i].length()==2) {caozuo(arr2[i][0], arr2[i][1]);}else if (s[i].length()==5) {caozuo(arr2[i][0], arr2[i][1],arr2[i][2]);caozuo(arr2[i][3], arr2[i][4]);}}scan.close();