假设有一个列表:
a = [1, 1, 0, 2, 0, 0, 8, 3, 0, 2, 5, 0, 2, 6]
原题是要求用python 写,但我还没学过py,就用C写一写这个程序吧:
/*
我用的方法是将一个数组中符合要求的值挑选出来,放到另一个数组中;
*/
//*********************************************************************
#include<stdio.h>
int main()
{
int a[] = { 1,2,3,0,9,7,3,0,8,3 ,3,4,0,9,7,0,6,0,0};//原数组
int b[256] = { 0 };//新数组
int i = 0;
int n = 0;
int *p = 0;
int *q = 0;
p = a;
q = b;//分别存储起始地址;
n = sizeof(a)/sizeof(a[0]);
// printf("%d\n", n); 这一行是测试程序,我喜欢自己这样测试中间数据是否正确;
for (i;i < n ;i++) {
if (*p != 0) {
*q = *p;
q++;
}//if判断是挑选出符合要求的数值;q++让新数组能一直往后延续;
p++;
}
n = sizeof(b) / sizeof(b[0]);
i = 0;
for (i;i < n;i++) {
if (b[i] != 0) {
printf("%d", b[i]);
}
}//自己增加的输出环节;以便检察是否符合要求;
return 0;
}
/*现在时间晚了,明天会进行改进,还会提供不用指针的方法;
大家如果有什么好的意见和建议欢迎随时提出!
*/