hcycy08042 2023-12-12 21:53 采纳率: 0%
浏览 104
已结题

6-1冒泡排序函数题

题目描述
从键盘输入某班学生某门课程的成绩(每班人数最多不超过40人),当输入为负值时,表示输入结束。本题要求实现用冒泡排序法将分数从高到低排序(并输出每趟排序结果)的函数。

函数接口定义:
void DataSort(int score[], int n);
其中 score 是用户传入的学生成绩数组, n是学生人数。

裁判测试程序样例:

#include <stdio.h>
#define N 40
int ReadScore(int score[]);
void DataSort(int score[], int n);
void PrintScore(int score[], int n);
int main()
{
    int score[N], n;
    n = ReadScore(score);
    printf("n=%d\n", n);
    if(n)
    { DataSort(score, n);
      printf("After sort: ");
      PrintScore(score, n);
    }
    return 0;
}

int ReadScore(int score[])
{
    int i = -1;
    do{
        i++;
        scanf("%d", &score[i]);
    }while (score[i] >= 0);
    return i;
}

/* 你的代码将被嵌在这里 */

void PrintScore(int score[], int n)
{
    int i;
    for (i=0; i<n; i++)
    {  if (i!=0)  printf(" ");
       printf("%d", score[i]);
    }
    printf("\n");
}

输入样例:
64 85 73 99 92 -1
输出样例:
n=5
第1趟:85 73 99 92 64
第2趟:85 99 92 73 64
第3趟:99 92 85 73 64
After sort: 99 92 85 73 64
输入样例:
92 88 85 76 62 59 -1
输出样例:
n=6
After sort: 92 88 85 76 62 59
以下是我写的代码

#include<string.h>
void DataSort(int score[], int n){
    int q1[41],mid,count=0;
    for(int j=0;score[j]>=0;j++){
        if(score[j]<score[j+1]){
            count++;
            printf("第%d趟: ",count);
            for(int m=j;score[m]<score[m+1];m++){
                mid=score[m];
                score[m]=score[m+1];
                score[m+1]=mid;
            }
            PrintScore(score,n);
            j=-1;
            continue;
        }
    }
    return 0;
}

但是pta显示运行这样

img

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 12月20日
    • 创建了问题 12月12日

    悬赏问题

    • ¥15 usb相机曝光度expos增加一点,获取图像速度显著变慢。
    • ¥15 如何解决如图问题:我创建的java maven项目中使用了03版本的excel,我先进行了文件读取的操作(可以正常取出,文件还未损坏),文件还未损坏),然后在进行了对同一文件的写入操作
    • ¥100 对接googlepay/googlewallet咨询
    • ¥15 Odoo 17系统中如何配置自动更新生产成本功能
    • ¥15 如何提取京东订单生成QQ支付链接
    • ¥50 游戏中的像素着色器获取到的法线贴图错误怎么解决
    • ¥15 把从欧空局下载的哨兵一号数据导入snap的时候出现这个问题该怎么解决😥
    • ¥15 蓝桥杯stm322016年省赛试题中遇到的问题
    • ¥15 有没有ND4J能用的MAVEN地址
    • ¥15 外接电阻采用星形连接,测量一个电阻的相电压,用数据采集卡进行显示,而电机旋转转速有1300r/min,按照此电机的转速常数,应该电压值为15v左右