比如a[] = {1, 1, 2, 2, 3, 3}这样是数组,你希望输出的时候重复的元素不用输出来,即a[] = {1, 2, 3}这样。
#include <stdio.h>
//数组输出时除冗
void arrayPrintUnique(int a[], int n)
{
//先排个序(这里是冒泡排序)
for (int i = 0; i < (n-1); i++)//因为进行两两比较,n个数最坏的情况就需要进行n-1趟
{
for (int j = 0; j < (n-1) - i; j++)//因为每进行一趟就可以排好一个数,所以循环次数-i
{
if (a[j] > a[j+1])//两两比较
{
int temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
int store = 10000;//store必须不是所输入数组中的元素
for(int i = 0; i<n; i++)
{
if(store == a[i])
{
continue;
}
printf("%d ",a[i]);
store = a[i];
}
}
//数组除冗
void arrayUnique(int a[], int n)
{
//先排个序(这里是冒泡排序)
for (int i = 0; i < (n-1); i++)//因为进行两两比较,n个数最坏的情况就需要进行n-1趟
{
for (int j = 0; j < (n-1) - i; j++)//因为每进行一趟就可以排好一个数,所以循环次数-i
{
if (a[j] > a[j+1])//两两比较
{
int temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
int store = 10000;//store必须不是所输入数组中的元素
int j = 0;
for(int i = 0; i<n; i++)
{
if(store == a[i])
{
continue;
}else
{
a[j] = a[i];
printf("%d ",a[j]);
j++;
}
store = a[i];
}
}
int main()
{
int a[] = {1,1,2,4,2,4,2,3,3};
arrayPrintUnique(a,9);
arrayUnique(a,9);
return 0;
}