ページ 11

標準ライブラリ関数の使用について

Posted: 2017年5月07日(日) 17:56
by Makoto
distance関数の中身が分からないのでお願いします。
次のdistance関数を定義し,2次元平面上の2点(x1, y1)と(x2, y2)との間の距離(x1-x2)²+(y1-y2)²の平方根を計算する.
double distance(int x1, int y1, int x2, int y2);
main関数は修正してはいけません.

コード:

/* ここに必要なインクルード文を書く */

/* ここに関数プロトタイプ宣言を書く */

int main(void)
 {
    int x1, x2, y1, y2;;
    double ans;
 
    printf("1つ目の点の座標(x y)¥n");
    scanf("%d %d", &x1, &y1);
    printf("2つ目の点の座標(x y)¥n");
    scanf("%d %d", &x2, &y2);
    
    ans = distance(x1, y1, x2, y2);
    printf("2点間の距離は %f", ans);
   
    return 0;
}

double distance(int x1, int y1, int x2, int y2)
{
/* ここにプログラムを書く */
}
ソースコード

コード:

#include <stdio.h>
#include <math.h>

double distance(int x1, int y1, int x2, int y2);

int main(void)
{
	int x1, x2, y1, y2;
	double ans;
	
	printf("1つ目の点の座標(x y)\n");
	scanf("%d %d", &x1, &y1);
	printf("2つ目の点の座標(x y)\n");
	scanf("%d %d", &x2, &y2);
		
	ans = distance(x1, y1, x2, y2);
	printf("2点間の距離は %f\n", ans);
	
	return 0;
}

double distance(int x1, int y1, int x2, int y2)
{	
	double c;
	double a = pow(x1-x2,2);
	double b = pow(y1-y2,2);
	c = a+b;
	double ans = sqrt(c);
}

Re: 標準ライブラリ関数の使用について

Posted: 2017年5月07日(日) 18:04
by Hiragi(GKUTH)
distance関数の中身の何がわからないのですか?

Re: 標準ライブラリ関数の使用について

Posted: 2017年5月07日(日) 18:22
by 白い変人
原形を残したまま適当に添削してみましたが、こういう事でしょうか?
それとも、もっと別な技術的な事でお悩みなのでしょうか?

コード:

 
double distance(int x1, int y1, int x2, int y2){
    double c;
    double a;
    double b;
    
    a = pow(x1-x2,2);
    b = pow(y1-y2,2);
    c = a+b;

    return sqrt(c);
}
 

Re: 標準ライブラリ関数の使用について

Posted: 2017年5月07日(日) 21:59
by Makoto
白い変人さんが添削された通りに直したところ、できました。ありがとうございました(*^_^*)