一维数组中删除第M个元素
输入
输入分为2行,第一行输入一个N,N<1000和M,表示要将第M个元素删除。
第二行输入N 个整数,数据之间用空格分开。
每个整数都小于32767。
输出
输出运算后的数组元素的数值,相互间用空格隔开,第一数之前和最后一个数之后都没有空格。
样例输入
6 3
1 2 3 4 5 6
样例输出
1 2 4 5 6
[解决办法]
其实这个算法很简单啊
就是有点让你说的复杂了。
package com.briup.test08;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.println("请输入n");
int n=input.nextInt();
System.out.println("请输入m");
int m=input.nextInt();
System.out.println("i:"+n+" j:"+m);//测试一下看看数据是否输入进来了,判断是否大约1000我就不写了
int[] str = new int[n];
//首先给数组赋值
for(int j=0;j<n;j++){
str[j]=j+1;
//测试一下是否赋值成功
System.out.print(" "+str[j]);
}
System.out.println();
System.out.println("-----------");//分割下
//删除第m个数,其实就是从第m个数开始,把m+1赋值给m,m+2赋值给m+1;
for(int i=m;i<n;i++){
str[i-1]=str[i];
}
//最后测试一下,少了一个数,所以j<n-1,最后一个数其实也是等于6,这里没删除。
for(int j=0;j<n-1;j++){
System.out.print(" "+str[j]);
}
}
}