閱讀以下說明和C函數,將應填入 (n) 處的字句寫在答題紙的對應欄內。
【說明1】
函數Counter(int n, int w[])的功能是計算整數n的二進制表示形式中1的個數,同時用數組w記錄該二進制數中1所在位置的權。
例如,十進制數22的二進制表示為10110。對于該二進制數,1的個數為3,在w[0]中存入2(即21)、w[1]中存入4(即22)、w[2]中存入16(即24)。
【C函數1】
int Counter(int n, int w[])
{ int i=0, k=1;
while( (1) ){
if (n%2) w[i++]=k;
n=n/2; (2) ;
}
return I;
}
【說明2】
函數Smove(int A[], int n)的功能是將數組中所有的奇數都放到所有偶數之前。其過程為:設置數組元素下標索引i(初值為0)和j(初值為n-1),從數組的兩端開始檢查元素的奇偶性。若A[i]、A[j]都是奇數,則從前往后找出一個偶數,再與A[j]進行交換;若A[i],A[j]都是偶數,則從后往前找出一個奇數,再與A[i]進行交換;若A[i]是偶數而A[j]是奇數,則交換兩者,直到將所有的奇數都排在所有偶數之前為止。
【C函數2】
void Smove(int A[],int n)
{ int temp, i=0, j=n-1;
if(n<2)return;
while(i<j){
if(A[i]%2==1&&A[j]%2==1){ (3) ;}
else if(A[i]%2==0&&A[j]%2==0){ (4) ;}
else{
if( (5) ){
temp=A[i];A[i]=A[j];A[j]=temp;
}
i++,j--;
}
}
}