对一个数组进行接收进行操作后输出。输入三个操作数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();