【考點分析】 本題考查對整數的篩選及數組排序。考查的知識點主要包括:C語言循環結構,邏輯表達式等。
【解題思路】 此題屬于2位數的篩選題。分析題干要求,本題要求實現jsVal()函數的功能,歸納可以得出2個問題:問題1如何根據判斷條件(數組a和b中相同下標位置的數必須符合一個是偶數,另一個是奇數)篩選出滿足條件的數,同時統計其個數,問題2如何將這些數按從小到大的書序排列。
通過問題分析,得出解此題的思路為:先根據題目中的條件篩選出滿足條件的數并存入新的數組中,再對新數組進行排序。對于問題1通過if條件判斷語句和邏輯表達式可以實現。問題2排序可以通過循環嵌套的起泡法實現。
【參考答案】
void jsVal()
{
int i,j; /*定義循環變量*/
int temp; /*用于存儲排序中的中間變量*/
for (i = 0;i <= MAX - 1;i++) /*循環查找符合條件的元素*/
if (((a[i] % 2 == 0) && (b[i] % 2 != 0)) || ((a[i] % 2 != 0) && (b[i] % 2 == 0))){ /*判斷數組a和b中相同下標位置的數是否符合一個是偶數,另一個是奇數*/
c[i] = (a[i]<<8) + b[i]; /*a[i]按二進制左移8位再加上b[i]*/
cnt++; /*記錄c中個數*/
}
for (i = 0;i < MAX - 1;i++) /*將C中的元素按從小到大順序排列*/
for (j = 0;j < MAX - i - 1; j++)
if (c[j] > c[j+1]){
temp = c[j];
c[j] = c[j + 1];
c[j+1] = temp;
}
}
【易錯提示】 分解4位數算法的使用, 對4位數篩選和排序時if結構中的邏輯表達式。
相關推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |