도형을 계산하는 코드를 만들었습니다. 모서리 수를 입력하십시오. 그런 다음 각 구석의 협조. 이것으로 각 모서리, 둘레, 면적 및 중심점 사이의 거리를 제공합니다. 나는 지역까지 올라 갔고 그것을 e로 계산할 수있다. 하지만 중심 좌표에서 "e"를 사용하여 xy 좌표를 계산하려고하면 작업이 중단됩니다. 영역에서 나는 e = 0을 초기화합니다. 내 centroid 함수에서 전자를 0으로 취할 때 1을 "e"로 나눌 때 프로그램이 작동을 멈 춥니 다.다른 함수에서 한 함수의 변수 사용
void Area(int x[], int y[], int corners, int e, int g)
{
e = 0; //Initialise e
for (g = 0; g<(corners - 1); g++)
{
e += ((x[g] * y[g + 1]) - (x[g + 1] * y[g]));
}
e += ((x[corners - 1] * y[0]) - (x[0] * y[corners - 1]));
e *= -0.5;
cout << "The Area is" << " " << e << endl;
}
void Centroid(int x[], int y[], int wx, int wy,int corners,int g,int e)
{
wx = 0;
wy = 0;
for (g = 0; g < (corners-1); g++)
{
wx += ((x[g] + x[g + 1])*((x[g] * y[g + 1]) - (x[g + 1] * y[g])));
wy += ((y[g] + y[g + 1])*((x[g] * y[g + 1]) - (x[g + 1] * y[g])));
}
wx *= ((1/(6 * e)));
wy *= ((1/(6 * e)));
cout << "The Centroid is" << " " << wx << "," << wy << endl;
}
int main()
{
int g, corners, x[100], y[100], r[100], c, e,wx,wy;
cout << "Enter the number of corners";
cin >> corners;
for (g = 0; g<corners; g++)
{
cout << "enter the co ordinates";
cin >> x[g] >> y[g];
cout << "You have entered " << x[g] << " " << y[g] << endl;
}
Distance(x, y, corners, r, c = 0);
Perimeter(r, corners, g, c);
Area(x, y, corners, e = 0, g,wx=00.0,wy=00.0);
/*Centroid(x,y,wx=0,wy=0,corners,g,e);
*/
system("pause");
}
인수를 함수에 전달하는 아이디어는 ** 인수를 함수에 전달하기 전에 각 인수의 값을 계산하는 것입니다. 그렇지 않으면 함수 내부에서 로컬 변수로 선언 할 수도 있습니다. –
@barakmanos가 말했듯이 패스 할 필요가없는 매개 변수를 전달하고 있습니다. 변수'e','g','wx' 및'wy'는 모두 지역 int이어야합니다. –
그리고 이러한 기능을 호출하는 코드를 보여주십시오. –