早教吧 育儿知识 作业答案 考试题库 百科 知识分享

您能解答此C语言问题吗?Description用选择法对N个学生的成绩按从大到小的顺序排序,N个学生的成绩整数用scanf输入,输入的成绩在[0,100]之间。排序完成后,输入一个成绩,要求用逐个比

题目详情
您能解答此C语言问题吗?
Description
用选择法对N个学生的成绩按从大到小的顺序排序,N个学生的成绩整数用scanf
输入,输入的成绩在[0,100]之间。排序完成后,输入一个成绩,要求用逐个比较查找的方式找出该成绩是该组中第几个元素的值(即第几名)。如果该成绩不在数组中,则输出“no
this score!”。 要求: 1、把排序算法写成函数形式,在主函数中输入N个数据,然后调用排序函数排序。 2、在排序过程中尽量减少数据的交换和移动。
3、把查找算法写成函数形式,在主函数中输入1个数据,然后调用查找函数查找。
Input
输入共有三行:第一行是一个数N(N < 50),表示学生的人数; 第二行输入N个学生的成绩;
第三行输入一个数m(你要查找的成绩)
Output
第一行输出N个已经排好序的成绩,每两个成绩之间有一个空格隔开,每10个数据换一行(由大到小排列)。
第二行输出你要查找的成绩的名次(如果成绩相同,则并列)。具体的见Sample Output。
▼优质解答
答案和解析
#include<stdio.h>
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<n; i++)
    {
        scanf("%d",&a[i]);
    }
    soft(a,n);
    int m;
    printf("请输入您想查找的成绩:");
    scanf("%d",&m);
    int k=search(a,n,m);
    if( k>=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<n; i++)
    {
        if(flag==false)
        {
            flag=true;
            for(j=i+1; j<n; j++)
            {
                if(a[i]<a[j])
                {
                    m=a[i];
                    a[i]=a[j];
                    a[j]=m;
                }
                flag=false;
            }
        }
    }
    for(j=0; j<=n%10; j++)
    {
        for(i=j*10; (i<(j+1)*10)&&i<n; i++)
        {

            printf("%d ",a[i]);
        }
        printf("\n");
    }
    return 0;
}

int search(int a[],int n,int key)
{
    int lower,upper,j;
    lower=0;
    upper=n-1;
    while(upper>=lower)
    {
        j=(lower+upper)/2;
        if(key==a[j])
            return j;
        else if(key>a[j])
            upper=j-1;
        else lower=j+1;
    }
    return -1;
}
看了您能解答此C语言问题吗?Des...的网友还看了以下:

A、B两种有机物都能使溴水褪色,在催化剂存在条件下与过量H2充分加成均生成2-甲基丁烷;0.4mo  2020-04-27 …

根据如图下列说法正确的是()A.图示的各种成分在生态学上可以构成一个生态系统B.图示的各种成分在生  2020-06-13 …

水溶液显碱性的单质气体有哪些?这个问题是这样的?ABC是高中常见单质BDEF溶液均显碱性常温下B为  2020-06-23 …

生产某种产品q个单位时成本函数为c(q)=200+0·05q平方,求生产90个单位该产品时的平均成  2020-07-26 …

我县今年参加中考共有12000名学生,从中抽取1200名考生的数学成绩进行分析,以下说法中正确的是(  2020-11-06 …

我县今年参加中考共有12000名学生,从中抽取1200名考生的数学成绩进行分析,以下说法中正确的是(  2020-11-06 …

下列有关生态系统的描述,错误的是()A.生产者是生态系统必不可少的成分B.一片树叶就是一个生态系统C  2020-12-07 …

下列有关叙述错误的是()A.除病毒等少数种类外,一切生物体都是由细胞构成的B.单细胞生物,一个细胞就  2020-12-20 …

种群是指一个生态系统中A,同种生物所有的成熟个体的总和B,所有生物成熟个体的总和C,同总生物所有个体  2020-12-22 …

下列关于单细胞生物的叙述中,错误的是()A.整个生物体只由一个细胞构成B.能完成呼吸﹑生殖等复杂的生  2020-12-24 …