解题思路:
注意事项:
参考代码
#include<stdio.h>
int CompactIntegers(int a[],int n)
{
int i,j=0,b[n],m=0;
for(i=0;i<n;i++)
{
if(a[i]==0) //当最后一个元素为0.也成立,因为最后执行n--,最后一个元素在数组之外
{
for(j=i;j+1<n;j++) //用j,避免干扰i,i后元素整体前移
{
a[j]=a[j+1];
}
i--;
n--;
}
}
return n;
}
main()
{
int a[100],i,n;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
n=CompactIntegers(a,n);
for(i=0;i<n;i++)
{
printf("%d ",a[i]);
}
printf("\n%d",n);
}:
0.0分
6 人评分
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:644 |
2003年秋浙江省计算机等级考试二级C 编程题(1) (C语言代码)浏览:684 |
C语言训练-立方和不等式 (C语言代码)浏览:751 |
C语言训练-素数问题 (C语言代码)浏览:998 |
小明A+B (C语言代码)浏览:1256 |
A+B for Input-Output Practice (II) (C语言代码)浏览:1002 |
C语言程序设计教程(第三版)课后习题6.2 (C语言代码)浏览:711 |
C语言程序设计教程(第三版)课后习题1.6 (C语言代码)浏览:476 |
模拟计算器 (C++代码)浏览:807 |
C二级辅导-求偶数和 (C语言代码)浏览:674 |
Moji 2023-03-30 12:45:33 |
如果没有i--的话,有连续的两个0第二个0就无法删除;每删去一个0后,n自然就减1了。