一个关于去除数组重复元素的问题(C语言实现)
2010-09-09 01:15
736 查看
一个是关于去除一个数组中的重复数问题:
如定义一个int型数组:{1,1,3,5,6,3,6,9};
要求写一个函数得到如下数据{1,3,5,6,9},即重复出现的数只保存第一次出现的那一个数据。
源代码如下:
代码
1 #include<stdio.h>
2 #include<math.h>
3 void printArray(int array[],int n)
4 {//打印数组
5 int i;
6 for(i=0;i<n;i++)
7 {
8 printf("%d,",array[i]);
9 }
}
void choiseSort(int a[],int n)
{ ////对数组进行排序(选择排序)--升序
int i,j,k,temp;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
if(a[k]>a[j]) k=j;
if(i!=k)
{
temp=a[i];
a[i]=a[k];
a[k]=temp;
}
}
}
void DealArray(int array[],int n)
{ //将重复元素都用(最小值-1)代替,作为重复数的标记
int i,j;
int f;
f=array[0]-1;
for(i=0;i<n;i++)
{
j=i+1;
while(array[i]==array[j])
{
array[j]=f;
j++;
}
continue;
}
}
void ResultArray(int array[],int n)
{ //只打印出未被标记重复元素的元素,即为所求
int *p;
int f;
f=array[0]-1;
for(p=array;p<array+n;p++)
{
if(*p!=f)
{
printf("%d,",*p);
}
}
}
main()
{
int array[13]={7,1,12,11,8,1,1,3,5,6,3,6,9};
printArray(array,13);
printf("\n");
choiseSort(array,13);
printArray(array,13);
printf("\n");
DealArray(array,13);
printArray(array,13);
printf("\n");
ResultArray(array,13);
getch();
}
如定义一个int型数组:{1,1,3,5,6,3,6,9};
要求写一个函数得到如下数据{1,3,5,6,9},即重复出现的数只保存第一次出现的那一个数据。
源代码如下:
代码
1 #include<stdio.h>
2 #include<math.h>
3 void printArray(int array[],int n)
4 {//打印数组
5 int i;
6 for(i=0;i<n;i++)
7 {
8 printf("%d,",array[i]);
9 }
}
void choiseSort(int a[],int n)
{ ////对数组进行排序(选择排序)--升序
int i,j,k,temp;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
if(a[k]>a[j]) k=j;
if(i!=k)
{
temp=a[i];
a[i]=a[k];
a[k]=temp;
}
}
}
void DealArray(int array[],int n)
{ //将重复元素都用(最小值-1)代替,作为重复数的标记
int i,j;
int f;
f=array[0]-1;
for(i=0;i<n;i++)
{
j=i+1;
while(array[i]==array[j])
{
array[j]=f;
j++;
}
continue;
}
}
void ResultArray(int array[],int n)
{ //只打印出未被标记重复元素的元素,即为所求
int *p;
int f;
f=array[0]-1;
for(p=array;p<array+n;p++)
{
if(*p!=f)
{
printf("%d,",*p);
}
}
}
main()
{
int array[13]={7,1,12,11,8,1,1,3,5,6,3,6,9};
printArray(array,13);
printf("\n");
choiseSort(array,13);
printArray(array,13);
printf("\n");
DealArray(array,13);
printArray(array,13);
printf("\n");
ResultArray(array,13);
getch();
}
相关文章推荐
- 一个关于去除数组重复元素的问题(C语言实现)
- 一个有趣的问题:怎么在JS的数组中去除重复元素?(JAVA实现吧..)
- 关于去除JS数组中的重复元素问题
- 关于一个去除重复数组的问题
- javascript中去除数组重复元素的实现
- Java代码实现删除一个有序数组里面的重复元素
- 关于一个查找数组中是否存在某一个元素的问题
- 一个含n个元素的整数数组至少存在一个重复数, 请编程实现,在O(n)时间内找出其中任意一个重复数。
- javascript中去除数组重复元素的实现方法【实例】
- 关于成如何使用C语言处理数组元素c[-1]=0的问题
- List的All方法使用问题:我用List1的All方法来确保List1的所有每个数组元素中是否包含Arr1中的任意元素,这个部分很难实现。 因为,没有一个数组中是否包含另一个数组中的任意元素这个功能
- C语言关于函数、数组的一个事例【关于选手评分的问题】
- C语言实现一个数组每个元素依次向右移动k位(后面的往前面补,不开辟新空间)
- 数组试题---一个已经排序的数组,去除里面重复的元素 .
- js在数组中删除重复的元素自保留一个(两种实现思路)
- 关于从list或者数组中随机抽取部分不重复元素的问题探究
- 从n个数组中任意选取一个元素的所有组合的Java实现(组合问题)
- 一个已经排序的数组,去除里面重复的元素
- javascript中去除数组重复元素的实现方法【实例】