用选择法对N个学生的成绩按从大到小的顺序排序,N个学生的成绩整数用scanf 输入,输入的成绩在[0,100]之jian,排序完成后,输入一个成绩,要求用折半查找法找出该成绩是该组中第几个元素的值(
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/20 02:40:20
用选择法对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个数据换一行(由大到小排列).
用选择法对N个学生的成绩按从大到小的顺序排序,N个学生的成绩整数用scanf 输入,输入的成绩在[0,100]之jian,排序完成后,输入一个成绩,要求用折半查找法找出该成绩是该组中第几个元素的值(
#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