在c语言中用双重循环来做(另外也可以用单层循环做):
#include <stdio.h>
int main()
{
int a[]={1,2,1,7,3,2,3,4,5,8,7,6};
int i,j,t=12;
for(i=0;i<t;i++){
for(j=i+1;j<t;j++)
if(a[j]==a[i]){
for(;j<t;j++)
a[j]=a[j+1];
t--;
}
}
for(i=0;i<t;i++)
printf("%d",a[i]);
}
用java的方法:
package yjsyy;
import java.util.Arrays;
public class FirstTest {
public static void main(String[] args) {
int arr[] = { 1, 2, 3, 4, 2, 4, 2, 1, 4, 5, 4, 3 };
arr = dictinct(arr);
arr = dictinct0(arr);
System.out.println(Arrays.toString(arr));
}
public static int[] dictinct(int arr[]) {
// 临时数组,保存去重后的结果
int result[] = new int[arr.length];
for (int i = 0; i < arr.length; i++) {
// 定义开关
boolean flag = true;
for (int j = i + 1; j < arr.length; j++) {
if (arr[j] == arr[i]) {
flag = false;
break;
}
}
if (flag) {
result[i] = arr[i];
}
}
return result;
}
public static int[] dictinct0(int arr[]) {
int len = 0;
for (int i = 0; i < arr.length; i++) {
if (arr[i] != 0) {
len++;
}
}
int foot = 0;
int result[] = new int[len];
for (int i = 0; i < arr.length; i++) {
if (arr[i] != 0) {
result[foot++] = arr[i];
}
}
return result;
}
}