编写一个程序实现如下功能:一个整型数组有10个元素,删除所有值为n的元素。要求

如题所述

import java.util.ArrayList;
import java.util.List;

public class DeleteSort {
public static void main(String args[]) {
int[] oldArr = { 1, 2, 2, 3, 4, 2, 5, 2, 6 };
int[] newArr = removeBySort(oldArr, 2);
for (int i : newArr) {
System.out.print(i);
}
}

/**
* @param oldArr 你要操作的数组
* @param n 你要删除的元素
* @return
*/
public static int[] removeBySort(int[] oldArr, int n) {
List<Object> list = new ArrayList<Object>();//new一个list
for (int i : oldArr) {
if(i != n){//如果数组中的元素不等于要删除的元素
list.add(i);//那么就把它添加到list里面
}
}
int[] newArr = new int[list.size()];//new一个和list长度一样的新数组
for (int i = 0; i < list.size(); i++) {//循环list
newArr[i] = ((Integer) list.get(i)).intValue();//取出,并给数组赋值
}
return newArr;
}
}

运行结果:13456
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-06-02
#include <stdio.h>
main()
{
int A[10]={1,1,2,3,2,3,4,5,4,5};//这个数组也可以是你自己手动输入。
int i,k,n,B[10];
k=0;
printf("please input a bad number:\n");//要删除的数。
scanf("%d",&n);
for(i=0;i<10;i++)
{
if(A[i]==n)
{
k++;
}
else
{
B[i-k]=A[i];
}

}
for(i=0;i<10-k;i++)
{
printf("%d ",B[i]);
}

}
第2个回答  2011-06-03
#include<stdio.h>
void main()
{
int a[10]={1,2,3,4,5,6,7,8,9,10};/*里面数字可以自定*/
int i,j,m=10;
printf("Input n:");
scanf("%d",&n);
for(i=0;i<m;++i)
if(n==a[i])
{
for(j=i;j<m-1;--j)
a[j]=a[j+1];
m--;
}
for(i=0;i<m;++i)
printf("%d ",a[i]);
printf("\n");
}本回答被网友采纳
相似回答