C语言 关于删除数组 重复元素 的几种方法(也可以删除指定元素) 初学几个月的总结的小小心得

推荐第三种标记法,第二种最易于理解,第一种最直接 但是三重循环变量自增自减就较麻烦了

 

第一种方法 删除所有重复的元素 并把后部分元素前移  *****可以把后边元素前移*****

 

代码如下,

// 此方法 可以不排序
#include
#define N 10
int main()
{
	int a[N];
	int n=N;
	for(int i=0;i

 

 

第二种方法 冒泡排序 输出的时候偶判断下一个和当前的是否相同

 

代码如下,

#include
#define N 10
int main() 
{
	int a[N];
	for(int i=0;ia[j+1])
			{
				int temp;
				temp=a[j];
				a[j]=a[j+1];
				a[j+1]=temp;
			}
		}
	} 
	
	puts("\nLater   : "); 
	for(int i=1;i

 

 

 

第三种方法 设置flag标志用来标记数组当前元素是否是重复的 若不重复则用新角标控制存入这个数组中

 

代码如下,

#include 
#define N 10
int main()
{
	int a[N];
	for(int i=0;i

 

也可以存到新定义一个数组b[]里面 便于理解

 

 

 

ps,突发奇想,删除指定元素也可以把指定元素置为0,然后输出非零元素多简单啊

 

 

你可能感兴趣的:(#,初学C语言)