awind 发表于 2022-10-22 21:23:38

求求帮忙看看

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

怎么不引用太多函数完成啊,新生上路,最简单基础的做法就好,谢谢大佬了谢谢!

suchocolate 发表于 2022-10-22 21:25:40

你的数据输入形式是什么?手动输入?

jackz007 发表于 2022-10-22 21:35:35

suchocolate 发表于 2022-10-22 21:25
你的数据输入形式是什么?手动输入?

      他所有的作业都是靠求的,他要是能回答还用求别人?

傻眼貓咪 发表于 2022-10-22 22:04:48

这题不难,Python 的话可以自己先做做看。

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

typedef struct Person {
    char* name;
    unsigned algebra, lineage;
}Person;

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

int main(void)
{
    Person arr = {
      {"张飞", 78, 75},
      {"李大刀", 92, 67},
      {"李墨白", 84, 88},
      {"王老虎", 50, 50},
      {"雷小米", 99, 98}
    };
   
    qsort(arr, 5, sizeof(Person), compare);
   
    for (int i = 0; i < 5; ++i) {
      printf("%s %u %u\n", arr.name, arr.algebra, arr.lineage);
    }

    return 0;
}雷小米 99 98
李墨白 84 88
李大刀 92 67
张飞 78 75
王老虎 50 50

阿奇_o 发表于 2022-10-22 23:31:48

傻眼貓咪 发表于 2022-10-22 22:04
这题不难,Python 的话可以自己先做做看。

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

厉害呀,Python大蟒蛇都玩熟了,开始玩C草履虫了,哈哈哈{:10_250:}

xiangjianshinan 发表于 2022-10-23 04:48:22

我也参和一下:
import pandas as pd

k = pd.DataFrame({'姓名':["张飞","李大刀","李墨白",'王老虎','雷小米'],
               '高数':,
               '线代':})

print(k)
print('=========')
print(k.loc[((k['高数']+k['线代'])*-1).sort_values().index])


    姓名高数线代
0   张飞7875
1李大刀9267
2李墨白8488
3王老虎5050
4雷小米9998
=========
    姓名高数线代
4雷小米9998
2李墨白8488
1李大刀9267
0   张飞7875
3王老虎5050

人造人 发表于 2022-10-27 14:53:59

那我就练习练习C++了
sh-5.1$ cat main.cpp
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
#include <numeric>

using std::vector, std::pair;
using std::string;
using std::sort, std::accumulate;
using std::cout, std::endl;
using std::ostream;

ostream &operator<<(ostream &os, const vector<double> &vd) {
    bool flag = false;
    for(const auto &i: vd) {
      if(flag) os << ' ';
      flag = true;
      os << i;
    }
    return os;
}

ostream &operator<<(ostream &os, const vector<pair<string, vector<double>>> &vp) {
    bool flag = false;
    for(const auto &i: vp) {
      if(flag) os << endl;
      flag = true;
      os << i.first << ": " << i.second;
    }
    return os;
}

int main() {
    vector<pair<string, vector<double>>> vp = {
      {"张飞", {78, 75}},
      {"李大刀", {92, 67}},
      {"李墨白", {84, 88}},
      {"王老虎", {50, 50}},
      {"雷小米", {99, 98}}
    };
    sort(vp.begin(), vp.end(), [](const pair<string, vector<double>> &a, const pair<string, vector<double>> &b) -> bool {
      return accumulate(a.second.begin(), a.second.end(), 0) > accumulate(b.second.begin(), b.second.end(), 0);
    });
    cout << vp << endl;
    return 0;
}
sh-5.1$ g++ -g -Wall -o main main.cpp
sh-5.1$ ./main
雷小米: 99 98
李墨白: 84 88
李大刀: 92 67
张飞: 78 75
王老虎: 50 50
sh-5.1$
页: [1]
查看完整版本: 求求帮忙看看