蓝桥杯——删除数组零元素

从键盘读入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

答案:

  

#include <stdio.h>

#include <string.h>

void CompactIntegers(int array[], int *n)

{

int i,j;

int k = *n;//k为数组中元素个数

for (i = 0; i <k; i ++) {

//从指定的0开始,让

if (array[i]==0) {

for (j = i; j < k-1; j++) {

array[j]=array[j+1];//将0后面的元素都往前移

}

array[k]=0;

i--;//减和再加,让i还为当期值,因为后面的元素往前移了。

k--;//删除为0 的元素

}

}

*n = k;

}

int main(int argc, const char * argv[]) {

//输入数据

int n,i;

scanf("%d",&n);

int count[n];

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

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

}

CompactIntegers(count, &n);

//打印删除数组中的0元素后的元素个数和元素

printf("%d\n",n);

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

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

}

return 0;

}

时间: 2024-11-05 23:38:16

蓝桥杯——删除数组零元素的相关文章

ALGO-79 删除数组零元素

算法训练 删除数组零元素 时间限制:1.0s   内存限制:512.0MB 从键盘读入n个整数放入数组中,编写函数CompactIntegers,删除数组中所有值为0的元素,其后元素向数组首端移动.注意,CompactIntegers函数需要接受数组及其元素个数作为参数,函数返回值应为删除操作执行后数组的新元素个数.输出删除后数组中元素的个数并依次输出数组元素. 样例输入: (输入格式说明:5为输入数据的个数,3 4 0 0 2 是以空格隔开的5个整数)5 3 4 0 0 2样例输出:(输出格式

算法训练——删除数组零元素

//删除数组零元素 #include<stdio.h> int main(){ int i,n,count; scanf("%d",&n); int a[n]; for(i=0;i<n;i++) scanf("%d",&a[i]); for(i=0;i<n;i++){ if(a[i] != 0){ printf("%d ",a[i]); } } return 0; } 原文地址:https://www.cn

删除数组零元素 ---蓝桥杯

从键盘读入n个整数放入数组中,编写函数CompactIntegers,删除数组中所有值为0的元素,其后元素向数组首端移动.注意,CompactIntegers函数需要接受数组及其元素个数作为参数,函数返回值应为删除操作执行后数组的新元素个数.输 出删除后数组中元素的个数并依次输出数组元素. 样例输入: (输入格式说明:5为输入数据的个数,3 4 0 0 2 是以空格隔开的5个整数) 5 3 4 0 0 2 样例输出:(输出格式说明:3为非零数据的个数,3 4 2 是以空格隔开的3个非零整数) 3

删除数组零元素

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);/

算法训练 删除数组零元素

时间限制:1.0s   内存限制:512.0MB 从键盘读入n个整数放入数组中,编写函数CompactIntegers,删除数组中所有值为0的元素,其后元素向数组首端移动.注意,CompactIntegers函数需要接受数组及其元素个数作为参数,函数返回值应为删除操作执行后数组的新元素个数.输出删除后数组中元素的个数并依次输出数组元素. 样例输入: (输入格式说明:5为输入数据的个数,3 4 0 0 2 是以空格隔开的5个整数) 5 3 4 0 0 2 样例输出:(输出格式说明:3为非零数据的个

蓝桥杯——寻找数组中的最大值

问题描述 对于给定整数数组a[],寻找其中最大值,并返回下标. 输入格式 整数数组a[],数组元素个数小于1等于100.输入数据分作两行:第一行只有一个数,表示数组元素个数:第二行为数组的各个元素. 输出格式 输出最大值,及其下标 样例输入 3 3 2 1 样例输出 3 0 答案: #include <stdio.h> #include <string.h> int main(int argc, const char * argv[]) { int n; scanf("%

蓝桥杯算法训练&lt;一&gt;

一.图形显示[此题虽然简单,但是需啊哟注意的是,每个“*”后边有一个空格] 问题描述 编写一个程序,首先输入一个整数,例如5,然后在屏幕上显示如下的图形(5表示行数): * * * * * * * * * * * * * * * 1 import java.util.Scanner; 2 3 public class Main { 4 public static void main(String[] args) { 5 Scanner mScanner = new Scanner(System.

2015 蓝桥杯:5.九数组分数

*/--> pre.src {background-color: Black; color: White;} pre.src {background-color: Black; color: White;} pre.src {background-color: Black; color: White;} pre.src {background-color: Black; color: White;} pre.src {background-color: Black; color: White;}

蓝桥杯 算法训练 ALGO-50 数组查找及替换

算法训练 数组查找及替换 时间限制:1.0s   内存限制:512.0MB 问题描述 给定某整数数组和某一整数b.要求删除数组中可以被b整除的所有元素,同时将该数组各元素按从小到大排序.如果数组元素数值在A到Z的ASCII之间,替换为对应字母.元素个数不超过100,b在1至100之间. 输入格式 第一行为数组元素个数和整数b 第二行为数组各个元素 输出格式 按照要求输出 样例输入 7 2 77 11 66 22 44 33 55 样例输出 11 33 55 M 示例代码: 1 #include<