我需要存储比赛数据。我需要知道有多少支球队可以参加(n),以及他们要参加的比赛数量(n!)。然后,团队的名称及其结果。像这样:
const fetchEmployees = async () => {
try {
const response = await fetch("http://localhost:6873/api/values", {
method: "GET",
headers: {
"content-type": "application/json"
}
});
const names = await response.json();
return names;
} catch (error) {
return error;
}
};
输出将类似于:
Input:
3 6
TeamX
TeamY
TeamZ
TeamX 0 - TeamY 3
TeamX 1 - TeamZ 0
TeamY 1 - TeamX 0
TeamY 0 - TeamZ 0
TeamZ 0 - TeamX 0
TeamZ 3 - TeamY 1
EDIT2: 这就是我到目前为止所拥有的。但这在scanf上不起作用。...我无法在球队和比赛的数量之后输入球队的名称。您可以运行它并尝试理解吗?
指南:我有游戏和团队结构,首先将团队名称添加到Teams结构数组,然后将游戏添加到游戏结构数组。然后,如果/其他阻止进行胜利,失败等的数学运算,最后看到并打印出获胜者。
This winner is TeamY, with 7 point(s)
Won 2 game(s), tied 1 game(s) e lost 1 game(s)
Scored 5 goal(s) e suffered 3 goal(s)
答案 0 :(得分:4)
C语言和字符串不存在“问题”;你想做什么,就可以做什么。它比其他语言的责任要多。
您似乎需要一个结构数组,是的。我建议将其建模为只是玩过的一系列游戏,其中每个游戏都记录了参加比赛的团队及其得分。无需先记录“可用”团队列表,之后再从游戏数据中提取就更容易了。
struct game {
const char *teamA;
int scoreA;
const char *teamB;
int scoreB;
};
struct game game_new(const char *teamA, int scoreA, const char *teamB, int scoreB)
{
struct game g;
g.teamA = strdup(teamA);
g.scoreA = scoreA;
g.teamB = strdup(teamB);
g.scoreB = scoreB;
return g;
}
,然后在man程序中:
int main(void)
{
struct game games[100];
size_t num_games = 0;
for (size_t i = 0; i < sizeof games / sizeof *games; ++i)
{
char teamA[100], teamB[100];
int scoreA, scoreB;
if (scanf(" %s %d - %s %d", teamA, &scoreA, teamB, &scoreB) != 4)
break;
games[++num_games] = game_new(teamA, scoreA, teamB, scoreB);
}
}
答案 1 :(得分:1)
像所有编程语言一样,C仅与您为数据建模所制定的计划一样好
为此,可以使用存储数据的数组数组。
可能还需要考虑一个基于团队的关系数据库。然后,您还可以添加元数据等(例如时间戳)。尽管只有在不介意将应用程序外部化为C之外,这才是好选择。