題目是要實現對數組中的數據進行升序排序,然後用戶輸入1個數字,如果數組中有逐個數字就刪除,沒有就提示用戶沒有此數據。下面是我寫的,寫到後面就不會了,新手請教老師解答?謝謝! package homework;
import java.util.Scanner;
import java.util.Arrays; public class HomeText {
public static void main(String []args){
Scanner input = new Scanner(System.in);
int Num [] = new int []{1,2,3,4,5,6,7,8,9,0};
Arrays.sort(Num);
System.out.println("数组数据按升序排列:");
for(int i = 0;i<Num.length;i++){
System.out.println(Num[i]);
}
System.out.println("\n请输入一个整数:");
int No = input.nextInt();
for(int i = 0;i<Num.length;i++){
if(No == Num[i]){
//这里不会删除数据了
}else{
System.out.println("没有您要删除的数据。");
}
}
}
import java.util.Scanner;
import java.util.Arrays; public class HomeText {
public static void main(String []args){
Scanner input = new Scanner(System.in);
int Num [] = new int []{1,2,3,4,5,6,7,8,9,0};
Arrays.sort(Num);
System.out.println("数组数据按升序排列:");
for(int i = 0;i<Num.length;i++){
System.out.println(Num[i]);
}
System.out.println("\n请输入一个整数:");
int No = input.nextInt();
for(int i = 0;i<Num.length;i++){
if(No == Num[i]){
//这里不会删除数据了
}else{
System.out.println("没有您要删除的数据。");
}
}
}
{
i++; --其他代码就自己加了
}
是不是这个意思 用循环应该可以达到吧
初学 共同进步
if(No == Num[i])
{
Num[i] == Num[i+1];
这里需要数组长度减一个;
}///////////////////////////////////////下面我做了一个修改
package homework;
import java.util.Scanner;
import java.util.Arrays; public class HomeText {
public static void main(String []args){
Scanner input = new Scanner(System.in);
int Num [] = new int []{1,2,3,4,5,6,7,8,9,0};
int ArrayLength = length.Num;
Arrays.sort(Num);
System.out.println("数组数据按升序排列:");
for(int i = 0;i <Num.length;i++){
System.out.println(Num[i]);
}
System.out.println("\n请输入一个整数:");
int No = input.nextInt();
for(int i = 0;i <Num.length;i++){
if(No == Num[i])
{
Num[i] == Num[i+1];
ArrayLength -1;
}
else{
System.out.println("没有您要删除的数据。");
}
}
}
把所有的代码都写在一个method 里面。
这样,当你其他的程序,需要同样查找功能的时候 就很简单的用到了。 如果写这个作业,你的写法够了,但是以后写大
点的程序,我这样的结构更容易使用一些。
给一个思路吧
if(No == Num[i])
{
Num[i] == Num[i+1];
这里需要数组长度减一个;
} /////////////////////////////////////// 下面我做了一个修改
package homework;
import java.util.Scanner;
import java.util.Arrays; public class HomeText {
public static void main(String []args){
Scanner input = new Scanner(System.in);
int Num [] = new int []{1,2,3,4,5,6,7,8,9,0};
int ArrayLength = length.Num;
Arrays.sort(Num);
System.out.println("数组数据按升序排列:");
for(int i = 0;i <Num.length;i++){
System.out.println(Num[i]);
}
System.out.println("\n请输入一个整数:");
int No = input.nextInt();
for(int i = 0;i <Num.length;i++){
if(No == Num[i])
{
Num[i] = Num[i+1];
ArrayLength -1;
}
else{
System.out.println("没有您要删除的数据。");
}
}
}
看上去好想符合我的作业要求,
Num[i] == Num[i+1];
ArrayLength -1;
这里数组长度减1就一定是减去的相同的哪个元素吗?
你学的应该是数组的部分吧。
其实,是这样的, 我把你找到的数的Index跳过去了,这样,你数组就少了一个数字,所以,你就需要把数组减去一个
给你一个例子
比如我输入2 , 2是在数组里的Index是 1, 我让3 的Index 直接等于了1 就把 2 这个元素跳过去了,你在纸上画一下
就容易理解了。
{
Num[i] == Num[i+1];
ArrayLength -1; //这一句为什么报错呢??ArrayLength是什么意思?和Num.length有什么关系?