精华内容
下载资源
问答
  • C语言删除数组中某个元素的方法发布时间:2020-06-17 14:22:39来源:亿速云阅读:1964作者:...方法1:/*name: c语言 删除数组的某个元素tip:数组元素的增/删/ 改/查(简单遍历就ok)数组增删操作在c语言中没有相...

    C语言中删除数组中某个元素的方法

    发布时间:2020-06-17 14:22:39

    来源:亿速云

    阅读:1964

    作者:鸽子

    C语言实现删除数组中某个元素

    大家知道C语言实现删除数组中某个元素方法吗?下面将讲述在C语言中实现删除数组中某个元素的两种方法,大家一起看看吧。

    方法1:/*

    name: c语言 删除数组的某个元素

    tip:

    数组元素的增/删/ 改/查(简单遍历就ok)

    数组增删操作在c语言中没有相应的函数------我们最好是 自己写个函数保存好

    注意代码缩进,对齐

    */

    #include

    int main()

    {

    //删

    int arr[]={1,3,10,5,4,} ;

    int delect=0;

    int i=0,j=0,k=0;

    int n;//n为数组长度

    n=sizeof(arr)/sizeof(int);

    //printf("%d\n",n);//测试n

    printf("删除前数组为:");

    for(k=0;k<=n-1;k++)

    {

    printf("%4d",arr[k]);

    }

    printf("\n");

    //输入提示:

    printf("请输入要删除的数:");

    scanf("%d",&delect);

    for(i=0;i<=n-1;i++)

    {

    if(delect==arr[i])

    {

    for(j=i;j<=n-2;j++)

    {

    arr[j]=arr[j+1];//覆盖

    }

    // goto loop1;

    }/*执行完这个if引导的代码块后,删除工作已ok了,但程序还会把循环跑完,

    会自然想到break ,但仔细一想,不好控制,不行,,,

    最好的解决方法-goto 或 记录下标,出循环后处理这个下标

    */

    }

    /*

    此处 也可以使用 记录下标delectindex的方法 ---推荐使用,因为上面的

    代码在执行的时候 会多run些无用的步骤,具体见上面的注释

    */

    //loop1:

    printf("删除后数组为:");

    for(k=0;k<=n-2;k++)

    {

    printf("%4d",arr[k]);

    }

    printf("\n");

    return 0;

    }

    方法2:记录下标/*

    name: c语言 删除数组的某个元素

    tip:

    数组元素的增/删/ 改/查(简单遍历就ok)

    数组增删操作在c语言中没有相应的函数------我们最好是 自己写个函数保存好

    注意代码缩进,对齐

    */

    #include

    int main()

    {

    //删

    int arr[]={1,3,10,5,4,} ;

    int delect=0;

    int delectIndex=0;

    int i=0;//相比于上一个代码,少定义了k,j,---这种用来控制循环的变量,在不是嵌套的情况下,可以只定义一个

    //(尽量少定义变量,减少内存占用)

    int n;//n为数组长度

    n=sizeof(arr)/sizeof(int);

    //printf("%d\n",n);//测试n

    printf("删除前数组为:");

    for(i=0;i<=n-1;i++)

    {

    printf("%4d",arr[i]);

    }

    printf("\n");

    //输入提示:

    printf("请输入要删除的数:");

    scanf("%d",&delect);

    for(i=0;i<=n-1;i++)

    {

    if(delect==arr[i]) delectIndex=i;//记录要删除元素的下标

    }

    for(i=delectIndex;i<=n-2;i++)

    {

    arr[i]=arr[i+1];

    }

    //想知道较为具体的执行过程---debug 或 写些printf(建议使用)

    printf("删除后数组为:");

    for(i=0;i<=n-2;i++)

    {

    printf("%4d",arr[i]);

    }

    printf("\n");

    return 0;

    }

    更多相关知识点文章:

    展开全文
  • PTA第9题-数组元素删除 完成数组元素的移动功能:假设数组有n个元素,输入一个数x,把数组的第x个位置的元素删除了,后面的元素依次前进一个位置。 重复若干次这样的删除,得到最后的结果。 输入格式: 第一行包括...

    PTA第9题-数组元素的删除

    完成数组元素的移动功能:假设数组有n个元素,输入一个数x,把数组的第x个位置的元素删除了,后面的元素依次前进一个位置。 重复若干次这样的删除,得到最后的结果。

    输入格式:
    第一行包括一个整数n(1<=n<=100),表示数组元素的个数。 第二行输入n个数组元素,均为整数,用空格隔开。 第三行输入一个数k(1<=k<=100),表示要进行k次删除。 接下来k行,每行一个数x,表示要删除第x个元素。

    输出格式:
    输出经过k次删除后的数组,每两个元素之间用空格隔开。

    输入样例:

    10
    1 2 3 4 5 6 7 8 9 10
    4
    3
    2
    4
    6
    

    输出样例:

    1 4 5 7 8 10
    

    思路:首先读入数组长度n,然后将数组a[]读入,之后将数组要操作的次数j读入,然后进行删除并将后面的元素向前移动即可。具体代码如下:

    #include<stdio.h>
    int main()
    {
    	int i,j,i1,n,m,a[101];
    	scanf("%d",&n);
    	for(i=0;i<n;i++)
    	{
    		scanf("%d",&a[i]);
    	}
    	scanf("%d",&j);
    	for(i=0;i<j;i++)
        {
        	scanf("%d",&m);
        	for(i1=m;i1<n;i1++)
        	{
        		a[i1-1]=a[i1];		
    		}
    	}
    	for(i=0;i<n-j-1;i++)
      	{
    	printf("%d ",a[i]);
        }
        printf("%d",a[n-j-1]);
    }
    

    而且发现就是最后一个输出后面也不能有空格,所以我还是采用了分两次输出。

    展开全文
  • C语言 删除数组 某个元素

    万次阅读 多人点赞 2017-08-08 10:24:48
     数组元素的增/删/ 该/查(简单遍历就ok)   数组增删操作在c语言中没有相应的函数------我们最好是 自己写个函数保存好   注意代码缩进,对齐  */ #include int main() { //删 int arr[]={1,3,10,5,4,} ;
     方法1:
     /* 
     name: c语言  删除数组的某个元素 
     tip:
       数组元素的增/删/      改/查(简单遍历就ok) 
       数组增删操作在c语言中没有相应的函数------我们最好是 自己写个函数保存好 
       注意代码缩进,对齐 
    */


    #include<stdio.h>
    int main()
    {
    //删
    int arr[]={1,3,10,5,4,} ;
    int delect=0;
    int i=0,j=0,k=0;
    int n;//n为数组长度 

    n=sizeof(arr)/sizeof(int);
    //printf("%d\n",n);//测试n
     
     printf("删除前数组为:");
     for(k=0;k<=n-1;k++)
     {
      printf("%4d",arr[k]);
     
     }
     printf("\n");
     
     
    //输入提示:
    printf("请输入要删除的数:");
    scanf("%d",&delect); 
    for(i=0;i<=n-1;i++)
       {    
        if(delect==arr[i])
           {
           for(j=i;j<=n-2;j++)
              {
               arr[j]=arr[j+1];//覆盖 
    }  
      // goto loop1; 
    }/*执行完这个if引导的代码块后,删除工作已ok了,但程序还会把循环跑完,
    会自然想到break ,但仔细一想,不好控制,不行,,,
    最好的解决方法-goto  或  记录下标,出循环后处理这个下标 
     
    */
    }
    /*
    此处 也可以使用 记录下标delectindex的方法 ---推荐使用,因为上面的 
    代码在执行的时候 会多run些无用的步骤,具体见上面的注释 
    */

        //loop1:
    printf("删除后数组为:");
    for(k=0;k<=n-2;k++)
       {
        printf("%4d",arr[k]);
    }
    printf("\n");
     
    return 0;
    }

     --------------------------------------------------------------------------------------------------------------------------------------------------------

    方法2:记录下标

     
     /* 
     name: c语言  删除数组的某个元素 
     tip:
       数组元素的增/删/      改/查(简单遍历就ok) 
       数组增删操作在c语言中没有相应的函数------我们最好是 自己写个函数保存好 
       注意代码缩进,对齐 
    */


    #include<stdio.h>
    int main()
    {
    //删
    int arr[]={1,3,10,5,4,} ;
    int delect=0;
    int delectIndex=0;
    int i=0;//相比于上一个代码,少定义了k,j,---这种用来控制循环的变量,在不是嵌套的情况下,可以只定义一个
    //(尽量少定义变量,减少内存占用) 
    int n;//n为数组长度 

    n=sizeof(arr)/sizeof(int);
    //printf("%d\n",n);//测试n
      
     printf("删除前数组为:");
     for(i=0;i<=n-1;i++)
     {
      printf("%4d",arr[i]);
     
     }
     printf("\n");
     
     
    //输入提示:
    printf("请输入要删除的数:");
    scanf("%d",&delect); 
    for(i=0;i<=n-1;i++)
       {    
        if(delect==arr[i]) delectIndex=i;//记录要删除元素的下标 
      }
      
      
    for(i=delectIndex;i<=n-2;i++)
      {
      arr[i]=arr[i+1];
      }
      
      //想知道较为具体的执行过程---debug  或  写些printf(建议使用) 
       
    printf("删除后数组为:");
    for(i=0;i<=n-2;i++)
       {
        printf("%4d",arr[i]);
    }
    printf("\n");
     
    return 0;
    }
     



    展开全文
  • #include #include #include using namespace std;int a[110], d, n;int main(){scanf("%d", &n);//n元素的个数for(int i = 0; i < n; ++i){scanf("%d", &...//第一种方法 不改变数组元素for(in...

    #include

    #include

    #include

    using namespace std;

    int a[110], d, n;

    int main(){

    scanf("%d", &n);//n元素的个数

    for(int i = 0; i < n; ++i){

    scanf("%d", &a[i]);

    }

    scanf("%d", &d);

    //第一种方法  不改变数组的元素

    for(int i = 0; i < n; ++i){

    if(a[i] != d){

    printf("%d ", a[i]);

    }

    }

    //第二种方法, 会改变数组元素

    sort(a, a + n);//数组从小到大排序

    int amount = 0;

    for(int i = 0; i < n; ++i){

    if(a[i] == d){

    ++amount;

    }//找到数组中值为d元素个数

    else if(amount != 0){

    a[i - amount] = a[i];//每个元素向前移

    }

    }

    for(int i = 0; i < n - amount; ++i){

    printf("%d ", a[i]);

    }

    }

    两种方法,望采纳,谢谢~~~

    展开全文
  • c语言 查找数组元素

    千次阅读 2020-03-08 22:12:56
    输入n个整数构成一个数组,在这个数组中查找x是否存在,如果存在,删除x,并输出删除元素后的数组。如果不存在,输出“Not Found”。 定义一个查找函数find(),在数组a中查找x,若找不到函数返回-1,若找到返回x的...
  • 包含5个元素的队列的数组表示以及前后的值如下图所示。上图显示了形成英文单词“HELLO”的字符队列。 因为,到目前为止在队列中没有执行删除报操作,因此font的值保持为0。 但是,每次在队列中...
  • c语言删除数组中重复元素

    万次阅读 多人点赞 2020-01-25 19:47:54
    原题:把一个数组中的重复元素去掉。如a[12]={1,1,2,7,3,2,3,4,5,8,7,4},输出为:1,2,7,3,4,5,8 在csdn上查了一下,发现给出的方法都很复杂,对新手很不友好,于是写了一个比较简单的,源码如下: #include<...
  • C语言删除数组指定元素

    万次阅读 2018-01-02 11:18:19
    // 删除长度为len的数组dat中索引为idx的元素。 void remove(int *dat, int *len, int idx) {  (*len)--;  if (idx = *len)  return;  for (int i = idx; i   dat[i]
  • c语言删除数组中的元素

    千次阅读 多人点赞 2020-11-26 12:23:29
    删除一个元素,相同也可删除 核心思想: 1.找到元素用if语句 2.删除就是用后面的代替该元素(需要删除元素), 用for语句 3.遍历(就是用for循环看一遍数列)就可以找到想要删除元素, 4.注意最后要给末尾换成零...
  • 原标题:单片机C语言多维数组多维数组对于二维数组a[4][6];由于数组名代表数组的起始地址,所以a(第一层)和第一个元素a[0][0]地址的数字是相同的,但是意义却是不同的。 对于该数组我们可以理解为:a的一维数组(第一...
  • C语言数组元素的增删

    千次阅读 2018-12-02 15:16:16
    #include &amp;amp;lt;stdio.h&amp;amp;gt; #include &...#define N 5 //宏定义,不是必须的(是个常量,不能在程序中进行加减... 1、查找要删除的数字的下表 2 2、从下标开始,后面一个覆盖前面一个数字
  • 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组元素的顺序可以改变。你不...
  • C语言删除数组中重复的元素 上代码 /***** 删除数组重复的元素 *****/ #include<stdio.h> #define N 10 int main(){ int i,j,n=N,k; int a[n]={2,2,3,3,4,1,5,4,3,2}; for(i=0;i<n;i++){ for(j...
  • 对于一个任意长度为len的数组A,使其循环左移P个元素。如数组{1,2,3,4,5,6,7},左移3个元素即变为{4,5,6,7,1,2,3}。 实现算法 方法一 对前3个元素完全转置,变为{3,2,1,4,5,6,7} 对后4个元素完全转置,变为{3,2...
  • C语言 删除数组中重复的元素

    千次阅读 多人点赞 2020-11-26 17:43:18
    删除数组中重复的元素 举个栗子,输入整数n,然后输入n个整数。直接上代码 #include<stdio.h> int main(void) { int i,n,a[100]; int j, temp; printf("输入元素的个数:"); scanf("%d",&n); for(i=0...
  • C语言删除数组中的0元素

    千次阅读 2020-06-18 23:09:36
    编写函数CompactIntegers,删除数组中所有值为0的元素,其后元素数组首端移动。注意,CompactIntegers函数需要接收数组及其元素个数作为参数,函数返回值应为删除操作执行后数组的新元素个数。 输入时首先读入数组...
  • C语言数组C语言中比较特殊的一种数据类型。这种数据类型由元素类型和元素个数共同决定。并且元素计数是从0开始到数字大小减去1。数组数组名是数组的名字。在使用它的时候需要注意C语言中的规定。首先我们来看...
  • 中文名C语言动态数组释义相对于静态数组而言根据随程序需要而重新指定大小定义声明时没有确定数组大小的数组C语言动态数组词目释义编辑动态数组,是相对于静态数组而言。静态数组的长度是预先定义好的,在整个程序中...
  • 满意答案ckchanel02013.12.24采纳率:58%等级:7已帮助:159人这个题目的解题思路为:因为数组a已非递减有序,所以一般先对其进行二分查找,但要找到第一个x所在的下标,然后再对其进行删除。int BitSearch(int a[],...
  • C语言静态数组常常接触,因为静态数组简单好用,使用动态数组不如使用链表,动态数组处境尴尬。静态数组:int a[32]={0}动态数组:可以动态增加空间,但静态数组不能。动态数组结构体。struct dynamicArray{void** ...
  • 可以让使用者 自己初始化数组 更加方便 下面涉及动态内存分配 知识点 如果大家不熟悉可以看 我写的一篇博客https://blog.csdn.net/SpongeBob_shouse/article/details/119958752 下面进入代码演示 这次不会出现0当...
  • 跟大家讲解下有关c语言二分法如何实现查找数组元素,相信小伙伴们对这个话题应该也很关注吧,现在就为小伙伴们说说c语言二分法如何实现查找数组元素,小编也收集到了有关c语言二分法如何实现查找数组元素的相关资料...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 57,838
精华内容 23,135
关键字:

c语言删除数组元素

c语言 订阅