*プログラムリストは、下記にあります↓
#C言語#構造体#構造体を戻り値とする関数
【学習内容】
1:構造体 1
2:構造体 2
-----------------------------------------------------------------------------------
<プログラムリスト>(Visual Studio2022)
コピー&ペーストでお使い下さい。
*”TABキー”でスペースの間隔の体裁を整えて下さい。
(プログラムの記述画面に”全角”のスペースが
含まれていると、ビルドに失敗します。)
-----------------------------------------------------------------------------------
【プログラム1】
[構造体を戻り値とした関数]
-----------------------------------------------------------------------------------
//**の部分の<,>を半角文字に書き換えて下さい。
#include<stdio.h>
struct Data {
int x;
int y;
int z;
};
struct Data data_of(int x, int y, int z)
{
struct Data value;
value.x = 2 * x;
value.y = 2 * y;
value.z = 2 * z;
return value;
}
int main(void)
{
struct Data s;
s = data_of(2, 4, 6);
printf("x' = %d/y' = %d/z' = %d\n", s.x, s.y, s.z);
return 0;
}
-----------------------------------------------------------------------------------
【プログラム2】
[2点間の距離を求める]
-----------------------------------------------------------------------------------
//**の部分の<,>を半角文字に書き換えて下さい。
#include<math.h> //**
#include<stdio.h> //**
#define Squared(n) ((n) * (n)) //2乗の計算
typedef struct {
double x; //x座標
double y; //y座標
}Point;
double distance(Point p1, Point p2)
{
//距離の計算(三平方の定理より)
return sqrt(Squared(p2.x - p1.x) + Squared(p2.y - p1.y));
}
int main(void)
{
Point p1, p2;
printf("点1のx座標"); scanf_s("%lf", &p1.x);
printf(" y座標"); scanf_s("%lf", &p1.y);
printf("点2のx座標"); scanf_s("%lf", &p2.x);
printf(" y座標"); scanf_s("%lf", &p2.y);
printf("\n2点間の距離 = %.2f\n", distance(p1, p2));
return 0;
}