解题思路:
注意事项:
参考代码
#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语言程序设计教程(第三版)课后习题7.4 (C++代码)(和输入10个数排序没有区别,直接sort即可)浏览:2138 |
C语言程序设计教程(第三版)课后习题6.9 (C语言代码)浏览:744 |
C二级辅导-等差数列 (C语言代码)浏览:628 |
母牛的故事 (C语言代码)浏览:782 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:747 |
C语言程序设计教程(第三版)课后习题6.4 (C语言代码)浏览:1072 |
简单的a+b (C语言代码)浏览:641 |
C语言程序设计教程(第三版)课后习题6.9 (C语言代码)浏览:761 |
图形输出 (C语言代码)浏览:1422 |
判定字符位置 (C语言代码)浏览:849 |
Moji 2023-03-30 12:45:33 |
如果没有i--的话,有连续的两个0第二个0就无法删除;每删去一个0后,n自然就减1了。