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 }
  • 相关阅读:
    简单图表分析(2/2)
    简单图表分析(1/2)
    juqery dragsort使用遇到的问题
    移动端实战总结
    CSS VS JS动画,哪个更快[译]
    HTML5移动端图片上传模块
    移动端使用rem适配及相关问题
    再谈vertical-align与line-height
    Javascript中的Promise
    Retina屏实现1px边框
  • 原文地址:https://www.cnblogs.com/LeoFeng/p/4321063.html
Copyright © 2011-2022 走看看