zoukankan      html  css  js  c++  java
  • 删除数组零元素

     1 #include<stdio.h>
     2 #include<stdlib.h>
     3 
     4 //函数声明 
     5 int CompactIntegers(int *p,int n);
     6 
     7 int main()
     8 {
     9     int i;
    10     int n,n_final; //n:用于记录要输入的整数个数;n_final:用于记录删除数组中的0元素后数组的长度 
    11     int *p; //用于指向动态分配的数组空间 
    12     
    13     scanf("%d",&n);//输入要输入的整数的个数 
    14     
    15     p=calloc(n,sizeof(int)); //动态分配 n 个长度为sizeof(int)连续空间——动态数组(数组元素的个数为 n,类型为int) 
    16             
    17     for(i=0;i<n;i++) //输入 n 个整数 
    18         scanf("%d",p+i);
    19     
    20     n_final=CompactIntegers(p,n); //调用函数 CompactIntegers ,删除数组中所有值为0的元素,其后元素向数组首端移动 
    21     
    22     printf("%d\n",n_final); //输出删除数组中的0元素后数组的长度 
    23     
    24     for(i=0;i<n_final;i++) //输出删除数组中的0元素后的数组元素 
    25         printf("%d ",*(p+i));
    26         
    27     return 0;
    28 }
    29 
    30 //删除数组中所有值为0的元素,其后元素向数组首端移动 
    31 int CompactIntegers(int *p,int n)
    32 {
    33     int i,j;
    34     int n_temp; //用于记录删除 0 元素过程中数组的临时长度 
    35     
    36     n_temp=n; //赋数组的临时长度为原始长度 n 
    37     
    38     for(i=0;i<n_temp;i++) //遍历数组中的元素
    39     {
    40         if(*(p+i)==0) //找到 0 元素 
    41         {
    42             for(j=i;j<n_temp;j++) //删除数组中所有值为0的元素,其后元素向数组首端移动 
    43                 *(p+j)=*(p+j+1);
    44             i--;
    45             n_temp--; //数组的临时长度减 1 
    46         }
    47     }
    48 
    49     return n_temp;
    50 }
  • 相关阅读:
    Day2 while 循环,格式化输出,运算符,字符串编码
    Day 1 变量,基础数据类型与条件语句
    关于字符的一些看法
    正则的全局问题
    模块——js功能(倒计时,幻灯)
    垂直居中
    不确定宽度元素居中
    css3媒体查询
    less的预处理
    手机幻灯
  • 原文地址:https://www.cnblogs.com/LeoFeng/p/4321063.html
Copyright © 2011-2022 走看看