参考代码:
#include<stdio.h>
int A(int *, int);
int main(void)
{
int n, a[1000],m;
scanf("%d", &n);
for (int i = 0; i < n; i++) //输入初始数组
{
scanf("%d", &a[i]);
}
m = A(a, n); //m为删除0后的元素个数
for (int i = 0; i < m; i++) //输出处理后的a[i]
printf("%d ", a[i]);
printf("\n%d", m); //为满足输出格式
return 0;
}
int A(int *a, int n)
{
int b[1000], i, j=0;
for (i = 0; i < n; i++) //先将a[]拷贝到b[],再将不等于零的值赋给b[]
{
b[i] = a[i];
}
for (i = 0; i < n; i++)
{
if (b[i] == 0)
continue;
else
{
a[j] = b[i];
j++;
}
}
return j;
}
0.0分
0 人评分
A+B for Input-Output Practice (VII) (C++代码)浏览:615 |
C语言程序设计教程(第三版)课后习题8.5 (C语言代码)浏览:545 |
C语言训练-尼科彻斯定理 (C语言代码)浏览:469 |
【明明的随机数】 (C语言代码)浏览:788 |
C语言程序设计教程(第三版)课后习题9.3 (C语言代码)浏览:605 |
单词个数统计 (C语言代码)浏览:1013 |
C语言程序设计教程(第三版)课后习题5.8 (C语言代码)浏览:677 |
杨辉三角 (C语言代码)浏览:679 |
C语言程序设计教程(第三版)课后习题8.3 (C语言代码)浏览:459 |
C语言训练-字符串正反连接 (C语言代码)浏览:632 |