【考點分析】 本題考查對4位整數的排序。考查的知識點主要包括:數組元素的排序算法,if判斷語句和邏輯表達式,以及求余算術運算。
【解題思路】 此題屬于4位數排序問題。本題需主要解決3個問題:問題1如何取4位數的后3位進行比較;問題2如何按照題目要求的條件(按照每個數的后3位的大小進行降序排列,如果后3位相等,則按照原始4位數的大小進行升序排列)排序;問題3如何將排完序的前10個數存到數組bb中去。
本題的解題思路為:使用雙循環對數組按條件進行排序,然后將排完序的前10個數存到數組bb中。對于問題1可以通過算術運算的取余運算實現(aa[i]%1000);問題2通過包含if判斷語句的起泡排序法就可以實現。
【參考答案】
void jsSort()
{ int i,j; /*定義循環控制變量*/
int temp; /*定義數據交換時的暫存變量*/
for(i=0;i<199;i++) /*用選擇法對數組進行排序*/
for(j=i+1;j<200;j++)
{
if(aa[i]%1000 { temp=aa[i]; aa[i]=aa[j]; aa[j]=temp; } else if(aa[i]%1000==aa[j]%1000) /*如果后3位數相等*/ if(aa[i]>aa[j]) /*則要按原4位數的值進行升序排序*/ { temp=aa[i]; aa[i]=aa[j]; aa[j]=temp; } } for(i=0;i<10;i++) /*將排序后的前10個數存入數組b中*/ bb[i]=aa[i]; } 【易錯提示】 取4位數后三位的算法,if判斷語句中邏輯表達式的比較運算符。 相關推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |