C语言删除数组元素一些方法总结

一个具有10个元素的数组 1 3 3 2 5 1 1 5 6 6,删除相同元素后后变为 1 3 2 5 6,请大虾们帮下忙,最好给出全部程序,必须是删除法!

 代码如下 复制代码

void delete_listi(Node list,int i)
{
 Node p=list;q;
 int j;/*设辅助循环变量*/
 if(i==1)
  list=list->next;
 else
 {
  q=p;p=p->next;
  for(j=2;j<i;j++)/*注意j从2开始*/
  {
   q=q->next;p=p->next;/*移动指针*/
  }
  q->next=p->next;free(p);/*找到后释放*/
 }
 return;
}

例2

 代码如下 复制代码

/*我写了两种方法!!!方法一*/

#include <stdio.h>
int main()
{
 int a[10]={1,3,3,2,5,1,1,5,6,6};
 int i,j,k,x=10;/*x为数组中无重复有效元素的个数*/
 for(i=0;i<x;i++)
 {
  for(j=i+1;j<x;j++)
  {
   if(a[i]==a[j])
   {
    x--;//发现重复时减1
    for(k=j;k<x;k++)//移动数组
    {
     a[k]=a[k+1];
    }
    j--;
   }
  }
 }
 for(i=0;i<x;i++)printf("%d",a[i]);
 printf("n");
 return 0;
}

/******************************************************************************
 * 再写一种方法!!!
 *此方法是把所有重复的都标识出来,然后生成一个新的无重复元素的数组
 *******************************************************************************/

#include <stdio.h>
#define flag -1//此外定义了一个标识。把重复的无素赋值为此标识。
int main()
{
 int a[10]={1,3,3,2,5,1,1,5,6,6};
 int b[10];//用于存储有无重复元素的数组。
 int i,j,x=10;//x为无重复有效元素个数
 for(i=0;i<10;i++)
 {
  if(a[i]!=flag)//如果标识过了,就不比较了
  {
   for(j=i+1;j<10;j++)
   {
    if(a[i]==a[j]&&a[j]!=flag)
    {
     a[j]=flag;
     x--;//标识一个重复项,有效无素减少一个
    }
   }
  }
 };
 for(i=0,j=0;i<10;i++)//把非标识的元素,给数组b[];
 {
  if(a[i]!=flag)
  {
   b[j]=a[i];
   j++;
  }
 };
 for(i=0;i<x;i++)printf("%d",b[i]);
 printf("n");
 return 0;
}

删除数组中的重复元素

给定一个已定义的数组,该数组中包含有重复的元素!例如给定的数组为:int a[]={1,2,3,4,5,3,2,1,5};而目的是将该数组处理后留下的结果为:a[]={1,2,3,4,5}; 而不需要再定义int b[50],通过"b[j]=a[i];"把a数组的元素转移到b数组中去!

 代码如下 复制代码

#include <stdio.h>
int main()
{
char str[100];
int i=0,j;
printf("input a string n");
gets(str);
while(i<strlen(str))
{ j=i+1;
printf("delelte result %dn",strlen(str));
while(j<strlen(str))
{ if(str[j]==str[i])
{
str[j]='';
strcat(str,str+j+1) ;
}
else j++;
}
i++ ;

}
puts(str);

}

二维数组中删除数组中的重复元素

 

 代码如下 复制代码
简单地统计重复元素和不重复元素,可以用1维数组。
#include<stdio.h>
void main()
{
int i,j,k;
int a[50];
int b[50],c[50];
int n,flag=0;
for (i=1;i<50;i++) c[i]=0;
printf("Please enter 50 datan");
for (i=0;i<50;i++) scanf("%d",&a[i]);
n=0;
b[n]=a[0]; c[n]=1; n++;
for (i=1;i<50;i++){
for (k=0;k<n;k++){
if  (a[i] == b[k])  {c[k]=c[k]+1; flag=1;break;}
}
if (flag == 0) {b[n] =a[i];c[n]=1;n++;} else {flag = 0;};
}
for (i=0;i<50;i++){
if  (c[i]==1) printf("%d ",b[i]);
}
printf("n=============n");
for (i=0;i<50;i++){
if  (c[i]>1) printf("%d -- %dn",b[i],c[i]);
}
}

--------------------
“删除数组中的重复元素” 不知道 是什么意思。
 数组单元是连续分配单元的。即使是动态分配的单元,也不好从当中删去。

时间: 2024-10-29 03:20:37

C语言删除数组元素一些方法总结的相关文章

jQuery根据元素值删除数组元素的方法

  本文实例讲述了jQuery根据元素值删除数组元素的方法.分享给大家供大家参考.具体如下: 例如删除C这个元素 ,前提不知道C在这个数组的下标 ? 1 2 3 var arr = ['a','b','c','d']; arr.splice($.inArray('c',arr),1); alert(arr); 希望本文所述对大家的jQuery程序设计有所帮助.

JavaScript按值删除数组元素的方法

  本文实例讲述了JavaScript按值删除数组元素的方法.分享给大家供大家参考.具体实现方法如下: 代码如下: function ArrayRemoveByValue(str_value,arr_remove){ var num_to_del =new RegExp(str_value); var db_d =new RegExp(',{2}'); var se_d =new RegExp('(^,)|(,$)'); arr_ret = arr_remove.toString().repla

JavaScript删除数组元素的方法

 这篇文章主要介绍了JavaScript删除数组元素的方法,实例分析了javascript中delete函数的使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例讲述了JavaScript删除数组元素的方法.分享给大家供大家参考.具体分析如下: JS中可以通过delete删除数组元素,但是删除后数组的大小不会改变 ? 1 2 3 4 5 6 7 8 9 <script type="text/javascript"> <!-- var days = [

jQuery根据元素值删除数组元素的方法_jquery

本文实例讲述了jQuery根据元素值删除数组元素的方法.分享给大家供大家参考.具体如下: 例如删除C这个元素 ,前提不知道C在这个数组的下标 var arr = ['a','b','c','d']; arr.splice($.inArray('c',arr),1); alert(arr); 希望本文所述对大家的jQuery程序设计有所帮助. 以上是小编为您精心准备的的内容,在的博客.问答.公众号.人物.课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索jquery , 删除 , 数组元

JavaScript按值删除数组元素的方法_javascript技巧

本文实例讲述了JavaScript按值删除数组元素的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: function ArrayRemoveByValue(str_value,arr_remove){     var num_to_del =new  RegExp(str_value);     var db_d =new  RegExp('\,{2}');     var se_d =new  RegExp('(^\,)|(\,$)');     arr_ret = ar

Java数组,去掉重复值、增加、删除数组元素的方法_java

如下所示: import java.util.List; import java.util.ArrayList; import java.util.Set; import java.util.HashSet; public class lzwCode { public static void main(String [] args) { testA(); System.out.println("==========================="); testB(); System

JavaScript删除数组元素的方法_javascript技巧

本文实例讲述了JavaScript删除数组元素的方法.分享给大家供大家参考.具体分析如下: JS中可以通过delete删除数组元素,但是删除后数组的大小不会改变 <script type="text/javascript"> <!-- var days = ["Sunday","Monday","Tuesday","Wednesday", "Thursday",&quo

php 删除数组元素一些方法总结

实例一  代码如下 复制代码 //删除数组中的一个元素 function array_remove_value(&$arr, $var){ foreach ($arr as $key => $value) { if (is_array($value)) { array_remove_value($arr[$key], $var); } else { $value = trim($value); if ($value == $var) { unset($arr[$key]); } else {

js删除数组元素、清空数组的简单方法(必看)_javascript技巧

一.清空数组 var ary = [1,2,3,4]; ary.splice(0,ary.length);//清空数组 console.log(ary); // 输出 [],空数组,即被清空了 二.删除数组元素 var ary = [1,2,3,4]; ary.splice(0,1); 或 ary.splice($.inArray(2, ary), 1); 其中$.inArray(2, ary)用来查找某元素在数组中的索引位置. 三,js 删除数组几种方法 var arr=['a','b','c