1501100920-蓝桥杯-算法训练 删除数组零元素

来源:互联网 发布:绝地网络延迟检测 编辑:程序博客网 时间:2024/06/05 10:24
算法训练 删除数组零元素  
时间限制:1.0s   内存限制:512.0MB
    
  从键盘读入n个整数放入数组中,编写函数CompactIntegers,删除数组中所有值为0的元素,其后元素向数组首端移动。注意,CompactIntegers函数需要接受数组及其元素个数作为参数,函数返回值应为删除操作执行后数组的新元素个数。输出删除后数组中元素的个数并依次输出数组元素。  样例输入: (输入格式说明:5为输入数据的个数,3 4 0 0 2 是以空格隔开的5个整数)
  5
  3 4 0 0 2
  样例输出:(输出格式说明:3为非零数据的个数,3 4 2 是以空格隔开的3个非零整数)
  3
  3 4 2
样例输入
7
0 0 7 0 0 9 0
样例输出
2
7 9
样例输入
3
0 0 0
样例输出
0
 解题思路
     定义两个数组,一个存输入的,一个边判断边存储非0的。
java代码
package 删除数组零元素;import java.util.Scanner;public class Main {public static void main(String[] args){Scanner input=new Scanner(System.in);int n=input.nextInt();int[] c=new int[n];int[] num=new int[n];int sum;for(int i=0;i<n;i++)c[i]=input.nextInt();//因为数组c已经定义过,所以这里直接赋值就好sum=0;for(int i=0;i<n;i++)if(c[i]!=0)num[sum++]=c[i];System.out.println(sum);for(int i=0;i<sum;i++){System.out.print(num[i]);if(i!=sum-1)System.out.print(" ");}System.out.println();}}


0 0