2013-10-17 3 views
0

수학 모델을 요구하는 과제가 있습니다.하지만이 문제는 제 주요 기능의 일부입니다. 실행하면 항상 숫자를 스캔하는 데 어려움이 있습니다. 누군가 도움이 필요합니다. 나 확인해 봐. 고마워요C에서 포인터를 사용하는 데 문제가 있음

추신. 누군가이 메뉴를 종료하는 3을 입력하면 어떻게 할 수 있습니까? 내가 무슨 생각 exit(),하지만 여전히 나던 작품을 사용합니다. 여기

#include <stdio.h> 
#include <stdlib.h> 

int main(void) 

{ 

    int option =0; 

    double *x1, *x2,*y1, *y2, *x,*y; 

    double *slope; 

display_menu(); 

scanf(" %d", &option); 

    if(option ==1) 

{ 

printf("You choose to do the Two-point form. \n"); 

printf("Enter the x-y coordinates of the first point separate by a space=> "); 

scanf("%lf","%lf", &x1,&y1); 

printf("Enter the x-y coordinates of the second point separate by a space=> "); 

scanf("%lf","%lf", &x2,&y2); 

two_point_form(*x1,*y1,*x2,*y2); /* <<<--------this one is always wrong. T.T */ 

  

} 
} 


int two_point_form(double *x1, double *y1, double *x2, double *y2) 

{ 

    double slope, intecept; 

printf("Two-point form: "); 

printf(" (%lf-%lf)", *y2,*y1); 

printf(" m = --------"); 

printf(" (%lf-%lf)", *x2-*x1); 

slope = (*y2-*y1)/(*x2-*x1); 

intecept = *y1-slope**x1; 

printf("Slope-intecept form: y= %lfx+%lf", slope, intecept); 

} 

답변

0

:

double *x1, *x2,*y1, *y2, *x,*y; 

... 

scanf("%lf","%lf", &x1,&y1); 

당신이 포인터를 설정 scanf()에 대한 포인터의 주소를 전달하지만, 그들로 double의를 읽으려고하고 있습니다. 첫 번째 행은 다음과 같습니다 당신은 scanf 포인터 - 투 - 포인터 - 투 - 더블을 전달하는

double x1, x2, y1, y2, x, y; 
1

. 그리고 할당되지 않았기 때문에 , y1에서 two_point_form 등을 역 참조하면 의 정의되지 않은 동작이 할당됩니다. 그런 다음 two_point_formscanf에 자신의 주소와 자신의 값을 전달

double x1, y1, x2, y2, x, y; 

:

당신이 option로하고있는 바와 같이 '정상'복식이 아닌 포인터로 두 배를 선언

two_point_form(x1, y1, x2, y2); 
0

당신에게 double * x1 (double에 대한 포인터)을 작성하십시오. 초기화하지 않는 것이 좋습니다. 나는 또한 당신이 double x1을 원한다고 가정하기 때문에 그것이 변수를 생성하기 때문에, 먼저 어떤 타입의 변수에 대한 포인터를 만든다.
그런 다음 scanf()을 호출하여 변수에 대한 포인터를 얻습니다. 포인터를주는 대신 double에 대한 포인터에 대한 포인터 인 &x1을 제공합니다. 다음 붐.
마지막으로 *x1 부분은 이중화되지 않은 포인터를 역 참조합니다.

그것은 삼중의 혼란, 그리고 당신이 (아마)이해야 할 것은

double x1,x2...; 

scanf("%lf...", &x1...); 

two_point_form(&x1,...); 

이며 무엇을해야 (확실히) 할 어떤 C 책을 들고 포인터를 장을 읽습니다.

관련 문제