C++且不使用vector头文件完成:描述可多宇宙中三位数很特殊每个三位数都有自己独一无二的名字。并且对于三位数有特殊的排序方法个位大的排在最前面个位一样的看百位按百位从大到小排序如果个位和百位都一样按它们的名字从小到大排序。输入描述第一行是一个整数 n 0 n 100表示有多少个数;接下来的 n 行每行有一个整数均为三位数和一个字符串为每个三位数的名字名字互不相同输出描述输出为 n 行每行有
#include
struct Number { int value; std::string name; };
bool compareNumbers(const Number& a, const Number& b) { int aOnes = a.value % 10; int aHundreds = a.value / 100; int bOnes = b.value % 10; int bHundreds = b.value / 100;
if (aOnes != bOnes) {
return aOnes > bOnes;
} else if (aHundreds != bHundreds) {
return aHundreds > bHundreds;
} else {
return a.name < b.name;
}
}
int main() { int n; std::cin >> n;
Number* numbers = new Number[n];
for (int i = 0; i < n; i++) {
std::cin >> numbers[i].value >> numbers[i].name;
}
std::sort(numbers, numbers + n, compareNumbers);
for (int i = 0; i < n; i++) {
std::cout << numbers[i].name << std::endl;
}
delete[] numbers;
return 0;
原文地址: https://www.cveoy.top/t/topic/hZqt 著作权归作者所有。请勿转载和采集!