每日一题(小白)数组娱乐篇17

发布于:2025-04-11 ⋅ 阅读:(39) ⋅ 点赞:(0)

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

网站公告

今日签到

点亮在社区的每一天
去签到