Я сделал этот образец 2d массив строкЗначение столбца отчетности Строковый массив C
char *strings[][4] = {{"Sport", "gender", "country", "medal"},
{"Cycling", "Womens", "China", "first"},
{"Swimming", "Womens", "China", "second"},
{"Swimming", "Womens", "Indonesia", "third"},
{"Cycling", "Womens", "New Zealand", "second"},
{"Cycling", "Womens", "New Zealand", "third"},
{"Swimming", "Womens", "New Zealand", "first"}}
, который уже был предварительно сортируется на основе столбцов 3 1
, в результате чего она была отсортированных первой страной (колонка 3), а затем, когда эта колонка имела связи, затем она сортировалась по спорту (столбец 1).
Я пытаюсь сделать несколько простых иерархических отчетов, с заголовками в верхней части, что-то вроде этого:
Country
Sport Count
-----------------
China
Cycling 1
Swimming 1
Indonesia
Swimming 1
New Zealand
Cycling 2
Swimming 1
Если данные сгруппированы в первую очередь странами (столбец 3), то отсчеты из спорта для каждой страны принимаются, когда в каждой стране не должно повторяться никакого вида спорта.
Я также хочу, чтобы сделать это разнообразно, скажем, массив предварительно сортируется по столбцам 3 1 2
, то это будет выглядеть так:
{{"Sport", "gender", "country", "medal"},
{"Cycling", "Womens", "China", "first"},
{"Swimming", "Womens", "China", "second"},
{"Swimming", "Womens", "Indonesia", "third"},
{"Cycling", "Womens", "New Zealand", "second"},
{"Cycling", "Womens", "New Zealand", "third"},
{"Swimming", "Womens", "New Zealand", "first"}}
но иерархическая отчетность будет выглядеть несколько иначе:
China
Cycling
Womens 1
Swimming
Womens 1
Indonesia
Swimming
Womens 1
New Zealand
Cycling
Womens 2
Swimming
Womens 1
Я уже выяснил, что моя проблема заключается в том, чтобы работать с этим видом иерархической отчетности.
Для спецификации столбцов, я только что с помощью аргументов командной строки, и моя программа выглядит следующим образом до сих пор:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAXSIZE 10
int
main(int argc, char **argv) {
char *strings[][4] = {{"Sport", "gender", "country", "medal"},
{"Cycling", "Womens", "China", "first"},
{"Swimming", "Womens", "China", "second"},
{"Swimming", "Womens", "Indonesia", "third"},
{"Cycling", "Womens", "New Zealand", "second"},
{"Cycling", "Womens", "New Zealand", "third"},
{"Swimming", "Womens", "New Zealand", "first"}};
int count, start_index, i;
int columns[MAXSIZE];
/* printing command line args out */
for (i = 0; i < count; i++) {
printf("%d ", columns[i]);
}
return 0;
}
Есть ли способ, что я могу достигнуть такого рода иерархической отчетности? Есть ли какой-то специальный алгоритм, который мне нужно реализовать для этого?
Пожалуйста, взгляните на мою идею, как решить эту проблему. –
Я думаю, что множественное число для слова «женщина» - это «женщины» - не женщины – i486
@ i486, да, но с точки зрения спортивных ссылок я использую «Женские», это не имеет значения. – RoadRunner