我正在编写一个计算足球比赛结果的程序。我正在尝试将球队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;
}
答案 0 :(得分:1)
此
teamid[ARRAY_SIZE] = {hometeamid};
是用于定义大小为ARRAYSIZE
的数组并将其初始化不完整的语法
你在循环中尝试它。
如果你想写一个你可能想要的数组成员
teamid[x] = hometeamid;
此外,我建议您确保不要在teamid [9]之外写作,这是数组的最后一个合法成员,ARRAY_SIZE == 10.
答案 1 :(得分:0)
您定义了一个大小为10的数组,然后在索引10处访问它。由于数组被编入索引0..n-1,您需要访问索引9以获取数组的结尾而不是10。