用選擇法對N個學生的成績按從大到小的順序排序,N個學生的成績整數用scanf 輸入,輸入的成績在[0,100]之jian

題目:

用選擇法對N個學生的成績按從大到小的順序排序,N個學生的成績整數用scanf 輸入,輸入的成績在[0,100]之jian,排序完成後,輸入一個成績,要求用折半查找法找出該成績是該組中第幾個元素的值(即第幾名).如果該成績不在數組中,則輸出「no this score!」.
要求:
1、把排序算法寫成函數形式,在主函數中輸入N個數據,然後調用排序函數排序.
2、在排序過程中儘量減少數據的交換和移動.
3、把查找算法寫成函數形式,在主函數中輸入1個數據,然後調用查找函數排序.
輸入共有三行:第一行是一個數N(N < 50),表示學生的人數;
第二行輸入N個學生的成績;
第三行輸入一個數m(你要查找的成績)
Output
第一行輸出N個已經排好序的成績,每兩個成績之間有一個空格隔開,每10個數據換一行(由大到小排列).

解答:

#include
int soft(int a[],int n);
int search(int a[],int n,int key);
int main()
{
int a[50];
int n;
printf("請輸入學生的總數:");
scanf("%d",&n);
printf("請輸入所有學生的成績(成績在0~100之間):\n");
for(int i=0;i=0)
printf("該成績是第%d名",(k+1));
else printf("no this score!");
return 0;
}
int soft(int a[],int n)
{
bool flag=false;
int i,j,m;
for(i=0;i

添加新評論

暱稱
郵箱
網站