2015-02-01 1 views
0

구조체 밖으로 두 개의 배열을 만들려고합니다. 모든 배열의 값을 가져 오는 데 어려움을 겪고 있습니다. 예를 들어, 구조에서 6 가지 배열을 가져오고 싶지만 한 배열 만 얻은 다음 프로그램이 마지막 단계까지 멈 춥니 다. 누군가 내 코드에 어떤 문제가 있다고 말할 수 있습니까?구조체와 배열 사용

#define NUM_OF_PLAYERS 6 
typedef struct player 
{ 
char name[20]; 
float height; 
float avr_points; 
int tshirt_num; 
}; 



int main() 
{ 
_flushall(); 
struct player players[NUM_OF_PLAYERS]; 
int i; 
for (i=0 ; i<NUM_OF_PLAYERS ; i++); 
{ 
    printf("\nenter the name of the player, height in cm, \navrage points   per game and number of his tshirt\n"); 
    scanf("%s", &players[i].name); 
    scanf("%f", &players[i].height); 
    scanf("%f", &players[i].avr_points); 
    scanf("%d", &players[i].tshirt_num); 
    _flushall(); 
} 
+0

먼저 typedef는 1) ';'앞에 최종 이름이 필요합니다. 또는 2) 'typedef'수정자를 제거하십시오. – user3629249

+0

'_flushall();'에 대한 호출이 무엇을 기대합니까? 달성하기 위해? flush 조작은 입력 스트림이 아닌 출력 전용입니다. 그래서 그것은 표준에 아무런 영향을 미치지 않습니다. – user3629249

답변

3

for 루프를 종료하는 추가 ;이 있습니다.

for (i=0 ; i<NUM_OF_PLAYERS ; i++); 
           ^

이는 그래서가 루프 빈 본문이

for (i=0 ; i<NUM_OF_PLAYERS ; i++) {} 

본질적으로 동일하고, 모든 scanf와는의는 루프 외부에서 한 번만 실행됩니다.

+0

........................................ MY BAD ...... ..................... 정말 고마워요! 나는 몇 시간 동안 이것에 붙어 있었다 ..... –

+1

또한 scanf가 'for'루프를 종료 할 때 'i'가 '7'인 것처럼 'players'배열의 정의를 지나서 데이터를 배치하고 있음을 주목하십시오. I.E. seg 오류 이벤트로 이어질 수있는 정의되지 않은 동작. – user3629249