我如何在C中存储数组?

时间:2017-07-31 18:39:06

标签: c

我正在编写一个计算足球比赛结果的程序。我正在尝试将球队ID存储在顶部定义的长度为10的数组中,但我不断从阵列中获得构建错误。我意识到语法可能是错误的,但我怎么能用变量来指定数组长度呢?    我得到的错误信息是:'{'标记之前的预期表达式。

#include <stdio.h>
#include <stdlib.h>
#define ARRAY_SIZE 10

int main() {
    int numberofmatches, hometeamid, awayteamid, hometeamgoals, awayteamgoals;
    int hometeamwins = 0;
    int winratio;
    int teamid[ARRAY_SIZE];
    printf("Enter number of matches played \n");
    scanf("%d", &numberofmatches);

    if (numberofmatches > 0) {

        int x = 0;
        do {

            printf("Enter match stats in order Home_team_ID,Away_Team_ID,Goals_Home,Goals_Away\n");
            scanf("%d %d %d %d", &hometeamid, &awayteamid, &hometeamgoals, &awayteamgoals);

            teamid[ARRAY_SIZE] = {hometeamid}; //Error is on this line

            if (hometeamgoals > awayteamgoals) {
                hometeamwins++;
            }
            x++;
        }
        while (x < numberofmatches);
        winratio = hometeamwins / numberofmatches;
        printf(" %d :teamidth %d :winratio", teamid[0], winratio);

    }
    return 0;

}

2 个答案:

答案 0 :(得分:1)


teamid[ARRAY_SIZE] = {hometeamid};
是用于定义大小为ARRAYSIZE的数组并将其初始化不完整的语法 你在循环中尝试它。

如果你想写一个你可能想要的数组成员 teamid[x] = hometeamid;

此外,我建议您确保不要在teamid [9]之外写作,这是数组的最后一个合法成员,ARRAY_SIZE == 10.

答案 1 :(得分:0)

您定义了一个大小为10的数组,然后在索引10处访问它。由于数组被编入索引0..n-1,您需要访问索引9以获取数组的结尾而不是10。