2016-09-22 4 views
-2
struct COMPLEX{ 
    int x; 
    int y; 
}; 

void add(struct COMPLEX *b[]); 

int main(int argc, char** argv) { 

    struct COMPLEX a[3]; 
    struct COMPLEX *ptr[] = { &a[0] , &a[1] , &a[2] }; 

    printf("Indtast a->x = "); 
    scanf("%d", a[0].x); 
    printf("Indtast a->y = "); 
    scanf("%d", a[0].y); 
    printf("Indtast a2->x = "); 
    scanf("%d", a[1].x); 
    printf("Indtast a2->y = "); 
    scanf("%d", a[1].y); 
    printf("Indtast a3->x = "); 
    scanf("%d", a[2].x); 
    printf("Indtast a3->y = "); 
    scanf("%d", a[2].y); 

    add(ptr); 

    return 0; 
} 

void add(struct COMPLEX *b[]){ 

    printf("%d + i%d",b[0].x + b[1].x + b[2].x, b[0].y + b[1].y + b[2].y); 

} 

임이 계산 된 복소수를 인쇄 할 기능을 사용할 때까지이 구조체의 배열을 가리키려고합니다. 그러나 그것은 나에게 오류를 준다. 아무도 도와 줄 수 있습니까? 미리 감사누군가 포인터로 나를 도울 수 있습니까

+4

'는 scanf ("% d 개"를, A [0] .x를);'- > 'scanf ("% d", & a [0] .x);' –

+0

나중에 참조 할 수 있도록 "오류가 발생했습니다."라는 오류 메시지를 게시하는 것보다 오류 메시지를 게시하는 것이 더 좋습니다. – chux

+0

포인터 배열이 좋은 이유는 무엇입니까? 그것이 엉망이되고있는 것 같습니다. – Lundin

답변

1

에 당신은

struct COMPLEX{ 
int x; 
int y; 
}; 

void add(struct COMPLEX *b[]); 

int main(int argc, char** argv) { 

struct COMPLEX a[3]; 
struct COMPLEX *ptr[] = { &a[0] , &a[1] , &a[2] }; 

printf("Indtast a->x = "); 
scanf("%d", &a[0].x); 
printf("Indtast a->y = "); 
scanf("%d", &a[0].y); 
printf("Indtast a2->x = "); 
scanf("%d", &a[1].x); 
printf("Indtast a2->y = "); 
scanf("%d", &a[1].y); 
printf("Indtast a3->x = "); 
scanf("%d", &a[2].x); 
printf("Indtast a3->y = "); 
scanf("%d", &a[2].y); 

add(ptr); 

return 0; 
} 

void add(struct COMPLEX *b[]){ 

printf("%d + i%d",b[0].x + b[1].x + b[2].x, b[0].y + b[1].y + b[2].y); 

} 
+0

완벽 해, 지금은 작동하지만, b [0] -> x처럼 함수에 화살표를 설정해야했습니다. 대단히 감사합니다! –

+0

대답을 대답으로 선택하십시오. – Eddy

0

는 scanf를 시도 스캔 형식의 문자열을 의미합니다()는 scanf에서 "&"연산자를 추가하는 것을 잊었다. 이제 표준 입력 스트림에서 입력을 검색하는 동안 scanf()는 그 입력 데이터를 어딘가에 넣어야합니다. 형식화 된 입력 데이터를 저장하려면 scanf()가 에 동일한 데이터 유형의 변수의 메모리 위치를 알아야합니다. & 변수의 메모리 위치를 나타냅니다. 코드에서

보정은 같은 코드 어딘가에 입력을 읽고있는 곳 &을 넣어 : -

scanf("%d", &a[0].x); 
관련 문제