用C语言编写一个fun(int bb[], int *n, int y)
发布网友
发布时间:2022-05-27 15:06
我来回答
共3个回答
热心网友
时间:2023-10-29 20:41
#include<stdio.h>
void fun( int bb[],int *n, int y)
{
int i=0,j=*n,k=0;
for( i=0; i<j; i++ )
{
printf("bb[%d]=%d\n", i, bb[i]);
if( bb[i] != y )
bb[k++]=bb[i];
}
*n = k;
}
int main()
{
int bb[10]={1,2,3,0,4,0,5,0,0,6};
int n=10;
int i = 0;
fun( bb, &n, 0 );//去掉bb中的0
for( i=0; i<n;i++ )
{
printf("bb[%d]=%d\n",i,bb[i]);
}
return 0;
}
热心网友
时间:2023-10-29 20:41
这个题目有趣. 用单层的for就可以了.
#include <stdio.h>
void fun(int bb[], int *n, int y){
int N=*n, i, j;
for(i=0, j=0; i<N; i++) {
if(bb[i]==y) --(*n);
else bb[j++]=bb[i];
}
}
void main() {
int a[]={ 1,2,9,3,9 };
int aL=sizeof(a)/sizeof(int);
int i;
fun(a, &aL, 9);
for(i=0; i<aL; i++) {
printf("%d ", a[i]);
}
}
热心网友
时间:2023-10-29 20:42
#include <stdio.h>
void fun(int bb[], int *n, int y)
{
int m=*n;
for(int i=0;i<m;i++)
{
if(bb[i]==y)
{
for(int j=i;j<m-1;j++)
{
bb[j]=bb[j+1];
}
m--;
}
}
*n=m;
}
main()
{
int a[5]={0,1,2,3,4};
int n=5;
int y=0;
fun(a,&n,0);
}追问
删除3后,我这样输出
for(int i=0;i<5;i++)
printf("%d",a[i]);
为什么结果是
我向上面那样的输出,怎么样能达到输出0124这个效果?
追答for(int i=0;i<n;i++)
printf("%d",a[i]);