在c++编译中,从一个数组里删除同样个数的数但结果为什么不同?初学编程,还烦请各位大神指教。

2025-01-05 14:01:17
推荐回答(2个)
回答1:

当然不一样啦,因为你有用数组b做判断,b的值不一样了,判断的结果也就不一样了,f就不一样了,f不一样,满足f<2的结果也就不一样了,num自然也就不一样了,所以打出来的f和sum会不一样。希望你看的明白

回答2:

#include 
void del( int a[], int *n, int e ) //delete one element from a[]
{
int i;
for( i=0;i<*n;i++ ) //find the position that equal e
if ( a[i] == e )
break ;
for( ; i<*n-1 ; i++ ) //the last move forward
a[i]=a[i+1] ;
(*n)--; //number of elements
}

void main()
{
int a[10]={1,2,3,4,5,6,7,8,9,10};
//int b[3]={1,2,3};
int b[3]={7,8,9};
int i ,n =10;

for( i=0;i<3;i++ )
del( a, &n , b[i] );
//output
for( i=0;i printf("%d ", a[i] );
printf("\n");
}