배열에서 여러 개의 일치를 살펴보고 일부 조건을 충족하는 모든 팀을 찾습니다. 발견되면 새로운 배열에 할당해야합니다. 새 배열을 출력 매개 변수로 사용해야합니다.세그먼트 오류 : 11
내가 전화 할 때 segmentation fault: 11
가 표시됩니다. 디버깅을 시도했지만 이유가없는 것처럼 보입니다. 메인에 선언 다음은
TEAM team_least_viewers;
double spectators = 99999;
solve_task_four(round, team, &team_least_viewers, &spectators);
그리고 함수 자체 : 요청으로
void solve_task_four(ROUND *round, TEAM *team, TEAM *team_least_viewers, double *spectators) {
int i, j, k = 0;
for(i=0; i<ROUNDS_PR_SEASON; i++) {
for(j=0; j<MATCH_PR_ROUND; j++) {
if(round[i].match[j].year == 2015) {
/* Searching for team name in team[]*/
for(k=0; k<NUMBER_OF_TEAMS; k++) {
/* If it matches */
if (round[i].match[j].home_team == team[k].name) {
team[k].spectators_home_last_year += round[i].match[j].spectators;
}
}
}
}
for(k=0; k<NUMBER_OF_TEAMS; k++) {
if(team[k].spectators_home_last_year < *spectators) {
*spectators = team[k].spectators_home_last_year;
}
}
}
}
구조체 :
는typedef struct {
char weekday[WEEKDAY_SIZE], start_time[START_TIME_SIZE],
home_team[TEAM_SIZE], away_team[TEAM_SIZE];
double spectators;
int day, month, year, round, home_team_score, away_team_score;
} MATCH;
typedef struct {
MATCH match[MATCH_PR_ROUND];
} ROUND;
typedef struct {
char *name;
int points, matches_played,
matches_won, matches_draw, matches_lost,
matches_won_home, matches_won_away,
goals_for, goals_against, goal_difference;
double spectators_home_last_year;
} TEAM;
어떤 도움을 주시면 감사 많은입니다.
'if (team [k] .spectators_home_last_year <* 관중) '가 double을 비교하는 것은 좋은 생각이 아닙니다. – hbagdi
@hbagdi : 복식 비교가 왜 나쁜 생각일까요? –
TEAM, ROUND 및 MATCH 구조체를 게시 할 수 있습니까? 또한 'round [i] .match [j] .home_team == team [k] .name'은 문자열을 비교할 수 없습니다. – hbagdi