鱼C论坛

 找回密码
 立即注册
查看: 3970|回复: 6

求求帮忙看看

[复制链接]
发表于 2022-10-22 21:23:38 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
姓名     高数    线代
张飞      78      75
李大刀   92      67
李墨白   84      88
王老虎   50      50
雷小米   99      98
编写程序按照总分从高到低进行排序后输出姓名和成绩

怎么不引用太多函数完成啊,新生上路,最简单基础的做法就好,谢谢大佬了谢谢!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-10-22 21:25:40 | 显示全部楼层
你的数据输入形式是什么?手动输入?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-22 21:35:35 | 显示全部楼层
suchocolate 发表于 2022-10-22 21:25
你的数据输入形式是什么?手动输入?


      他所有的作业都是靠求的,他要是能回答还用求别人?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-22 22:04:48 | 显示全部楼层
这题不难,Python 的话可以自己先做做看。

借用你的题,我练习练习 C
  1. #include <stdio.h>
  2. #include <stdlib.h>

  3. typedef struct Person {
  4.     char* name;
  5.     unsigned algebra, lineage;
  6. }Person;

  7. int compare(const void * a, const void * b) {
  8.     Person x = *(Person*)a, y = *(Person*)b;
  9.     return (y.algebra + y.lineage) - (x.algebra + x.lineage);
  10. }

  11. int main(void)
  12. {
  13.     Person arr[5] = {
  14.         {"张飞", 78, 75},
  15.         {"李大刀", 92, 67},
  16.         {"李墨白", 84, 88},
  17.         {"王老虎", 50, 50},
  18.         {"雷小米", 99, 98}
  19.     };
  20.    
  21.     qsort(arr, 5, sizeof(Person), compare);
  22.    
  23.     for (int i = 0; i < 5; ++i) {
  24.         printf("%s %u %u\n", arr[i].name, arr[i].algebra, arr[i].lineage);
  25.     }

  26.     return 0;
  27. }
复制代码
  1. 雷小米 99 98
  2. 李墨白 84 88
  3. 李大刀 92 67
  4. 张飞 78 75
  5. 王老虎 50 50
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-22 23:31:48 | 显示全部楼层
傻眼貓咪 发表于 2022-10-22 22:04
这题不难,Python 的话可以自己先做做看。

借用你的题,我练习练习 C

厉害呀,Python大蟒蛇都玩熟了,开始玩C草履虫了,哈哈哈  
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-23 04:48:22 | 显示全部楼层
我也参和一下:
  1. import pandas as pd

  2. k = pd.DataFrame({'姓名':["张飞","李大刀","李墨白",'王老虎','雷小米'],
  3.                '高数':[78,92,84,50,99],
  4.                '线代':[75,67,88,50,98]})

  5. print(k)
  6. print('=========')
  7. print(k.loc[((k['高数']+k['线代'])*-1).sort_values().index])
复制代码

  1.     姓名  高数  线代
  2. 0   张飞  78  75
  3. 1  李大刀  92  67
  4. 2  李墨白  84  88
  5. 3  王老虎  50  50
  6. 4  雷小米  99  98
  7. =========
  8.     姓名  高数  线代
  9. 4  雷小米  99  98
  10. 2  李墨白  84  88
  11. 1  李大刀  92  67
  12. 0   张飞  78  75
  13. 3  王老虎  50  50
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-27 14:53:59 | 显示全部楼层
那我就练习练习C++了
  1. sh-5.1$ cat main.cpp
  2. #include <iostream>
  3. #include <vector>
  4. #include <string>
  5. #include <algorithm>
  6. #include <numeric>

  7. using std::vector, std::pair;
  8. using std::string;
  9. using std::sort, std::accumulate;
  10. using std::cout, std::endl;
  11. using std::ostream;

  12. ostream &operator<<(ostream &os, const vector<double> &vd) {
  13.     bool flag = false;
  14.     for(const auto &i: vd) {
  15.         if(flag) os << ' ';
  16.         flag = true;
  17.         os << i;
  18.     }
  19.     return os;
  20. }

  21. ostream &operator<<(ostream &os, const vector<pair<string, vector<double>>> &vp) {
  22.     bool flag = false;
  23.     for(const auto &i: vp) {
  24.         if(flag) os << endl;
  25.         flag = true;
  26.         os << i.first << ": " << i.second;
  27.     }
  28.     return os;
  29. }

  30. int main() {
  31.     vector<pair<string, vector<double>>> vp = {
  32.         {"张飞", {78, 75}},
  33.         {"李大刀", {92, 67}},
  34.         {"李墨白", {84, 88}},
  35.         {"王老虎", {50, 50}},
  36.         {"雷小米", {99, 98}}
  37.     };
  38.     sort(vp.begin(), vp.end(), [](const pair<string, vector<double>> &a, const pair<string, vector<double>> &b) -> bool {
  39.         return accumulate(a.second.begin(), a.second.end(), 0) > accumulate(b.second.begin(), b.second.end(), 0);
  40.     });
  41.     cout << vp << endl;
  42.     return 0;
  43. }
  44. sh-5.1$ g++ -g -Wall -o main main.cpp
  45. sh-5.1$ ./main
  46. 雷小米: 99 98
  47. 李墨白: 84 88
  48. 李大刀: 92 67
  49. 张飞: 78 75
  50. 王老虎: 50 50
  51. sh-5.1$
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-26 01:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表