这是csp-j2020直播获奖,洛谷的一题,能不能讲解一下题并把代码贴出来看看
3条回答 默认 最新
- 技术专家团-小桥流水 2022-11-04 21:01关注
随着输入不断的排序,找出前w%的最低分数线
代码如下:#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include <stdlib.h> void sort(int a[], int n) { int i, j, t; for (i = 0; i < n - 1; i++) { for (j = 0; j < n - 1 - i; j++) { if (a[j] < a[j + 1]) //从大到小排序 { t = a[j]; a[j] = a[j + 1]; a[j + 1] = t; } } } } int max(int a, int b) { if (a > b) return a; else return b; } int main() { int n, w; int* sc; //存储成绩 int i, ps; //ps代表当前的获奖人数 scanf("%d %d", &n, &w); sc = (int*)malloc(sizeof(int) * n); for ( i = 0; i < n; i++) { scanf("%d", &sc[i]); sort(sc, i + 1); ps = max(1, (i + 1) * w / 100.0); //当前的获奖人数 if(i<n-1) printf("%d ", sc[ps - 1]); else printf("%d", sc[ps - 1]); } return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录