我下周一要做家庭作业,我需要有人指导我如何做下一步,因为我现在很困。
这是任务
本任务基于一份文件,其中包含2019-2020赛季丹麦超级联赛前26轮的比赛结果。输入文件的名称应该是matches-2019-2020.txt。例如,文件中的每一行都是匹配结果周五12/0719.00 FCM-EFB 1-0 7310这条线意味着FCM(FC Midtjelland(在7月12日(星期五(19:00主场对阵EFB(Esbjerg FB(,比赛有7310名观众观看,FCM进了一球,EFB在比赛中没有进球。
在任务中,所有匹配项都必须加载到structs数组(匹配数组(中。(如果你想的话,你可以假设锦标赛中正好有182场比赛。
结构必须存储有关比赛的星期几、日期(不包括年份(、两队、比赛结果和观众人数的信息。
现在的任务是查看所有的比赛结果,以形成一个团队阵列(团队阵列(,团队是一个结构。团队结构必须包含团队名称、分数、团队进球数和对团队进球数。如果你愿意,你可以假设有14支球队参加比赛。团队数组可以被视为将团队名称与团队结构相关联的关联数组,因此关联数组任务的一部分可以用于此任务。如果您愿意,您可以将团队放置在团队阵列中固定的、预先编程的位置。
现在必须对球队的阵容进行排序,这样我们才能在26轮比赛后找到比赛的位置。在这项任务中,它主要按分数排序,其次按净胜球排序。赢的比赛得3分,平的比赛得1分,输的比赛不得分。在标准输出上打印锦标赛积分榜,每支队伍一行,格式如下:
队名逐队得分每队得分。FCM 65 80 30意味着Middjyland队获得65分,进80球,丢30球努力将位置打印得很好,四个同样宽的列以自然清晰的方式缩进。
这是的文本文件
Fre 12/07 19.00 FCM - EFB 1 - 0 7310
Son 14/07 12.00 SDR - RFC 2 - 1 4734
Son 14/07 14.00 ACH - FCN 0 - 3 1653
Son 14/07 14.00 LBK - AaB 2 - 0 2971
Son 14/07 16.00 OB - FCK 2 - 3 9067
Son 14/07 18.00 BIF - SIF 3 - 0 13056
Man 15/07 19.00 HOB - AGF 1 - 1 4236
Fre 19/07 19.00 FCK - AGF 2 - 1 15957
Son 21/07 12.00 SIF - ACH 0 - 3 3535
Son 21/07 14.00 AaB - SDR 1 - 1 4355
Son 21/07 14.00 EFB - HOB 1 - 1 4452
Son 21/07 16.00 RFC - BIF 2 - 2 5984
Son 21/07 18.00 FCM - FCN 2 - 1 6142
Man 22/07 19.00 OB - LBK 4 - 1 6339
Fre 26/07 19.00 LBK - SDR 0 - 3 3168
Lor 27/07 17.30 ACH - FCK 0 - 2 3565
Son 28/07 12.00 HOB - RFC 2 - 2 2812
Son 28/07 14.00 FCN - EFB 2 - 0 1982
Son 28/07 16.00 AGF - FCM 0 - 1 11739
Son 28/07 18.00 BIF - OB 3 - 2 13689
Man 29/07 19.00 AaB - SIF 3 - 1 5885
Fre 02/08 19.00 SIF - HOB 2 - 3 3468
Lor 03/08 16.00 SDR - FCK 1 - 2 7417
Son 04/08 12.00 RFC - FCN 3 - 1 3111
Son 04/08 14.00 EFB - OB 0 - 1 4454
Son 04/08 16.00 BIF - ACH 1 - 2 15148
Son 04/08 18.00 FCM - AaB 1 - 0 7965
Man 05/08 19.00 LBK - AGF 2 - 1 5475
Fre 09/08 18.00 FCK - LBK 2 - 0 15747
Fre 09/08 20.00 OB - RFC 1 - 0 6978
Son 11/08 12.00 FCN - SIF 2 - 2 2038
Son 11/08 14.00 AaB - EFB 4 - 0 4380
Son 11/08 16.00 ACH - FCM 0 - 2 3179
Son 11/08 18.00 HOB - BIF 0 - 2 4186
Man 12/08 19.00 SDR - AGF 0 - 0 5160
Fre 16/08 18.00 RFC - FCK 0 - 1 5118
Fre 16/08 20.00 FCN - OB 2 - 0 2107
Son 18/08 12.00 SIF - SDR 3 - 3 3277
Son 18/08 14.00 EFB - LBK 1 - 0 3396
Son 18/08 16.00 FCM - HOB 1 - 1 6978
Son 18/08 18.00 BIF - AaB 2 - 1 11349
Man 19/08 19.00 AGF - ACH 2 - 0 7162
Fre 23/08 19.00 HOB - OB 0 - 0 2274
Son 25/08 12.00 LBK - RFC 2 - 0 3226
Son 25/08 14.00 EFB - SIF 2 - 2 3844
Son 25/08 16.00 SDR - FCM 0 - 2 5073
Son 25/08 18.00 BIF - AGF 0 - 3 14145
Son 25/08 20.00 FCK - FCN 3 - 1 11316
Man 26/08 19.00 ACH - AaB 0 - 5 2709
Fre 30/08 19.00 OB - SDR 0 - 0 7337
Lor 31/08 16.00 FCN - HOB 2 - 1 2529
Son 01/09 12.00 AGF - EFB 1 - 0 10420
Son 01/09 14.00 RFC - SIF 2 - 0 4021
Son 01/09 14.00 ACH - LBK 2 - 1 1234
Son 01/09 16.00 AaB - FCK 1 - 0 11645
Son 01/09 18.00 FCM - BIF 1 - 0 10944
Fre 13/09 19.00 SDR - ACH 0 - 0 4743
Son 15/09 12.00 AGF - AaB 3 - 0 10235
Son 15/09 14.00 EFB - RFC 0 - 3 3422
Son 15/09 14.00 LBK - FCM 0 - 3 4139
Son 15/09 16.00 HOB - FCK 2 - 1 5428
Son 15/09 18.00 BIF - FCN 4 - 2 14648
Man 16/09 19.00 SIF - OB 0 - 3 3502
Fre 20/09 19.00 OB - AGF 1 - 2 10441
Son 22/09 12.00 HOB - SDR 1 - 1 2453
Son 22/09 14.00 FCN - AaB 2 - 1 3031
Son 22/09 14.00 SIF - LBK 2 - 3 2452
Son 22/09 16.00 EFB - BIF 3 - 1 5907
Son 22/09 18.00 FCK - FCM 0 - 0 24464
Man 23/09 19.00 RFC - ACH 2 - 1 3379
Fre 27/09 19.00 LBK - HOB 2 - 1 3093
Lor 28/09 17.00 FCK - SIF 4 - 2 18393
Son 29/09 12.00 AGF - FCN 3 - 1 9149
Son 29/09 14.00 AaB - RFC 0 - 3 5083
Son 29/09 16.00 FCM - OB 0 - 1 8618
Son 29/09 18.00 SDR - BIF 2 - 1 6067
Man 30/09 19.00 ACH - EFB 1 - 1 1954
Fre 04/10 19.00 FCN - LBK 1 - 1 3090
Lor 05/10 16.00 HOB - AaB 0 - 2 2734
Son 06/10 12.00 EFB - SDR 1 - 2 3718
Son 06/10 14.00 BIF - FCK 3 - 1 21746
Son 06/10 14.00 OB - ACH 3 - 0 6442
Son 06/10 16.00 RFC - AGF 2 - 0 9947
Son 06/10 18.00 SIF - FCM 1 - 2 4773
Fre 18/10 19.00 AaB - OB 1 - 0 6086
Son 20/10 12.00 ACH - HOB 1 - 0 2241
Son 20/10 14.00 SDR - FCN 1 - 4 4863
Son 20/10 14.00 AGF - SIF 3 - 4 22175
Son 20/10 16.00 FCK - EFB 3 - 1 13872
Son 20/10 18.00 LBK - BIF 0 - 3 8547
Man 21/10 19.00 FCM - RFC 2 - 1 7410
Fre 25/10 19.00 EFB - FCM 1 - 2 4637
Son 27/10 12.00 HOB - SIF 1 - 1 1970
Son 27/10 14.00 OB - FCN 3 - 1 5915
Son 27/10 14.00 LBK - ACH 2 - 1 2947
Son 27/10 16.00 BIF - RFC 5 - 2 17558
Son 27/10 18.00 SDR - AaB 1 - 3 3843
Man 28/10 19.00 AGF - FCK 1 - 2 13884
Fre 01/11 19.00 EFB - ACH 1 - 1 3164
Son 03/11 12.00 RFC - LBK 2 - 1 2909
Son 03/11 14.00 OB - HOB 2 - 1 6237
Son 03/11 14.00 FCN - AGF 0 - 1 3230
Son 03/11 16.00 AaB - FCM 0 - 1 6305
Son 03/11 18.00 FCK - SDR 3 - 0 11394
Man 04/11 19.00 SIF - BIF 0 - 1 5432
Fre 08/11 19.00 RFC - AaB 3 - 3 4156
Lor 09/11 16.00 ACH - SIF 2 - 1 1826
Son 10/11 12.00 HOB - FCN 2 - 2 1733
Son 10/11 14.00 AGF - SDR 4 - 2 6291
Son 10/11 14.00 LBK - OB 4 - 3 4046
Son 10/11 16.00 BIF - EFB 2 - 1 12392
Son 10/11 18.00 FCM - FCK 4 - 1 11422
Fre 22/11 19.00 FCN - RFC 3 - 0 1441
Son 24/11 12.00 SDR - LBK 2 - 2 3712
Son 24/11 14.00 AaB - ACH 4 - 0 4048
Son 24/11 14.00 SIF - EFB 1 - 2 2876
Son 24/11 16.00 FCK - HOB 2 - 1 11512
Son 24/11 18.00 AGF - BIF 2 - 1 14043
Man 25/11 19.00 OB - FCM 1 - 2 6392
Fre 29/11 19.00 LBK - FCN 1 - 1 4419
Son 01/12 11.45 FCK - BIF 2 - 1 29310
Son 01/12 12.00 RFC - SDR 3 - 0 2057
Son 01/12 14.00 ACH - OB 2 - 1 1690
Son 01/12 16.00 EFB - AGF 1 - 2 4608
Son 01/12 18.00 AaB - HOB 1 - 1 4520
Man 02/12 19.00 FCM - SIF 2 - 1 6612
Fre 06/12 19.00 HOB - ACH 0 - 0 1356
Son 08/12 12.00 SIF - RFC 2 - 1 1984
Son 08/12 14.00 SDR - EFB 2 - 1 3623
Son 08/12 14.00 AGF - LBK 1 - 1 6138
Son 08/12 16.00 FCN - FCK 0 - 1 5133
Son 08/12 18.00 BIF - FCM 1 - 2 13317
Man 09/12 19.00 OB - AaB 0 - 0 5801
Fre 13/12 19.00 AaB - FCN 1 - 3 3791
Son 15/12 12.00 ACH - SDR 2 - 1 1261
Son 15/12 14.00 RFC - EFB 3 - 0 2103
Son 15/12 14.00 LBK - SIF 1 - 0 2434
Son 15/12 16.00 BIF - HOB 1 - 1 9703
Son 15/12 18.00 FCM - AGF 1 - 3 11009
Man 16/12 19.00 FCK - OB 2 - 1 12226
Fre 14/02 19.00 EFB - FCK 1 - 0 5449
Son 16/02 12.00 SDR - HOB 3 - 1 4316
Son 16/02 14.00 SIF - AaB 0 - 2 2667
Son 16/02 18.00 OB - BIF 0 - 2 9576
Man 17/02 19.00 FCM - LBK 2 - 0 6108
Ons 19/02 18.30 FCN - ACH 6 - 0 1621
Tor 28/05 19.00 AGF - RFC 1 - 1 0
Fre 21/02 19.00 HOB - FCM 0 - 2 2071
Son 23/02 12.00 FCN - SDR 2 - 1 1552
Son 23/02 14.00 RFC - OB 0 - 0 3103
Son 23/02 14.00 LBK - EFB 2 - 0 3114
Son 23/02 16.00 SIF - FCK 1 - 1 3282
Son 23/02 18.00 AaB - BIF 3 - 2 7896
Man 24/02 19.00 ACH - AGF 1 - 2 3566
Fre 28/02 19.00 AGF - HOB 0 - 0 7530
Lor 29/02 16.00 EFB - FCN 1 - 2 3116
Son 01/03 12.00 ACH - RFC 1 - 2 1794
Son 01/03 14.00 OB - SIF 1 - 1 4864
Son 01/03 16.00 BIF - LBK 1 - 0 16388
Son 01/03 18.00 FCK - AaB 3 - 2 13240
Man 02/03 19.00 FCM - SDR 3 - 0 8103
Son 08/03 12.00 HOB - EFB 1 - 1 0
Son 08/03 14.00 SDR - OB 1 - 1 0
Son 08/03 14.00 AaB - LBK 3 - 0 0
Son 08/03 16.00 FCK - ACH 0 - 1 0
Son 08/03 18.00 FCN - BIF 2 - 2 0
Son 08/03 20.00 RFC - FCM 0 - 2 0
Man 09/03 19.00 SIF - AGF 2 - 1 0
Fre 29/05 19.00 SIF - FCN 0 - 2 0
Son 31/05 18.00 EFB - AaB 1 - 1 0
Man 01/06 14.00 RFC - HOB 0 - 1 0
Man 01/06 16.00 FCM - ACH 0 - 1 0
Man 01/06 18.00 LBK - FCK 1 - 4 0
Man 01/06 20.00 AGF - OB 1 - 0 0
Tir 02/06 19.00 BIF - SDR 1 - 0 0
Son 07/06 17.00 FCK - RFC 2 - 1 0
Son 07/06 17.00 SDR - SIF 2 - 2 0
Son 07/06 17.00 AaB - AGF 2 - 3 0
Son 07/06 17.00 OB - EFB 3 - 1 0
Son 07/06 17.00 ACH - BIF 3 - 2 0
Son 07/06 17.00 FCN - FCM 0 - 1 0
Son 07/06 17.00 HOB - LBK 2 - 2 0
这是我迄今为止的代码
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define NUMOFTEAMS 14
typedef struct match
{
char day_name[4];
int day;
int month;
float hour;
char team_1[4];
char team_2[4];
int team_1_goal;
int team_2_goal;
int viewer;
} match;
typedef struct team
{
char* team_names;
int goals_scored;
int goal_conceded;
int points;
} team;
int
main()
{
FILE *fp;
fp = fopen("kampe-2019-2020.txt", "r");
char str[255];
while(fgets(str, 255, fp) != NULL) {
printf("%s", str);
}
if(fp == NULL){
printf("File not found...n");
exit(EXIT_FAILURE);
}}
所以我创建了2个struct和fopen来打开文本文件并打印它。我的问题是
- 当我用fopen和fget打开文件时,如何将信息存储到structteam和structmatch
- 在我完成了这项任务之后,我如何编写一个函数来对团队数组进行排序
如果有人能在Discord上帮助我,我将不胜感激,因为我对C很陌生,任务对我来说太难了
如何将信息存储到structteam和structmatch?
有多种选择,但请考虑:
- 在读入
str
的行中使用sscanf()
函数 - 不使用
fgets()
'ing,而是直接对输入文件使用fscanf()
进行扫描
您需要将结构的字段地址传递给这些函数。
如何编写一个函数来对团队数组进行排序?
我不会为你做家庭作业,但是-想想你会如何手工完成。忘记编程C吧。我给你的是比赛结果表,你需要把这些信息汇总到一个团队统计表中。如果没有电脑,你会怎么做。。。现在尝试这样做,但在C.