一个关于去除数组重复元素的问题(C语言实现)
2010-09-09 01:15
741 查看
一个是关于去除一个数组中的重复数问题:
如定义一个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中去除数组重复元素的实现方法【实例】
- 【我解C语言面试题系列】008 去除数组中重复数字问题
- JS写一个去除数组中重复元素的程序
- 问题:关于坛友的一个定时重复显示和隐藏div的实现
- C语言用数组1. 简单约瑟夫环问题: N个人,编号从1~N围成一圈,输入一个数T,从1号开始报数,报到T的人出圈;下一人又从1开始报数,下一个报到T的人出圈,输出出圈顺序。 考虑问实现约瑟夫环问题
- 实现一个基于LinkedList的队列数据结构,去除ArrayList集合中重复的元素,
- 【我解C语言面试题系列】009 特殊的去除数组中重复数字问题
- C#实现如何判断一个数组中是否有重复的元素
- 问题:关于坛友的一个定时重复显示和隐藏div的实现
- 【我解C语言面试题系列】009 特殊的去除数组中重复数字问题
- (转)js在数组中删除重复的元素自保留一个(两种实现思路)
- Java去除数组中重复元素的两种实现
- 问题:利用输入输出流重载实现一个整数数组的输入和输出。 要求:输入一个数组大小 及 所有元素的值,排序后输出该数组的所有元素。
- 关于C语言数组之间元素操作的问题
- javascript中去除数组重复元素的实现
- Java代码实现删除一个有序数组里面的重复元素