自己跑了几次程序都不对,有无大神指点一下

  1. 主函数中定义一个一维实型数组score,内放10个学生成绩。定义一个排序函数sort。在排序函数中分别用起泡法对10个学生成绩进行升序排序。
    float score[10]={95,85,75,65,68,78,88,98,45,100};
  2. 主函数中有定义语句float score[10]={95,85,75,65,68,78,88,98,45,100};定义一个排序函数sort。在排序函数中用选择法对10个学生成绩进行降序排序。

冒泡排序示例:


#include<stdio.h>


void sort(int a[],int n)
{
    int i,j,t,noswap;
    for(i=0;i< n-1; i++)
    {
        noswap=1;
        for(j=n-1;j>i;j--)
            if(a[j-1]>a[j])
            {
                t=a[j-1];
                a[j-1]=a[j];
                a[j]=t;
                noswap=0;
            }
        if(noswap)    
            break;
    }
}

int main() 
{
     
    int n;
    printf("Input n:");
    scanf("%d", &n);
     
    printf("Input %d numbers:", n);

    int a[n];
    for (int i = 0; i < 5; i++) {
        scanf("%d", &a[i]);
    }

    sort(a, n);

    printf("Sorting results:");
    for (int i = 0; i < 5; i++) {
        printf("%4d", a[i]);
    }

    return 0;
}

选择排序示例:


#include<stdio.h>


void sort(int a[],int n)
{
    int i,j,k,t;
    for(i=0;i<n-1;i++)
    {
        k=i;
        for(j=i+1;j<n;j++)
            if(a[j]<a[k])    
                k=j;
        if(k!=i)
        {
            t=a[k];
            a[k]=a[i];
            a[i]=t;
        }
    }
}

int main() 
{
     
    int n;
    printf("Input n:");
    scanf("%d", &n);
     
    printf("Input %d numbers:", n);

    int a[n];
    for (int i = 0; i < n; i++) {
        scanf("%d", &a[i]);
    }

    sort(a, n);

    printf("Sorting results:");
    for (int i = 0; i < n; i++) {
        printf("%4d", a[i]);
    }

    return 0;
}


如有帮助,欢迎采纳哈!