请补充函数fun(),该函数的功能是把数组aa中的偶数元素按原来的先后顺序放在原数组后面。
例如,输入“33,67,42,58,25,76,85,16,41,56”,输出结果“33,67,25,85,41,42,58,76,16,56”。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
试题程序:
#define N 10
void fun (int aa [] )
int i, j=0,k=0;
int bb [N];
for (i=0;i<N; i++)
if ( 【1】 )
bb [k++] =aa [i];
else
aa [ j ++ ] =aa [i];
for(i=0; 【2】 ;i++,j++)
aa[j] =bb [i];
main ( )
int i;
int aa[N]=33, 67,42,58,25, 76, 85, 16,
41,56;
clrscr ();
printf("\n*** original list ***\n");
for (i=0;i<N; i++)
printf ("%4d", aa [i] );
fun (aa);
printf("\n*** new list ***\n ");
for (i=0; i<N; i++)
printf ("%4d", aa [i] );
参考答案:[1]aa[i]%2==0 (2)i<k
解析: 填空1:如果一个数对2求余,结果为0;则这个数为偶数,就把这个数先暂时存在数组bb中。否则这个数为奇数,就存在数组aa中。填空2:最后,将数组bb中的偶数都拷贝到数组aa中奇数的后面。变量k记录了原数组aa中偶数的个数,所以for循环的条件是i<k。