-1

次のコードがあります。

typedef struct {
   double x, y;
} point_t ;


typedef struct {
    point_t a, b, c;
} triangle_t;

int read_point(point_t * const point) {
    int status = scanf(" (&lf,&lf)", &point_t.x, &point_t.y);
    return(status);
}

ユーザーが三角形の頂点 (ポイント a、b、c) に入力する x 座標と y 座標を読み取ろうとしています。 .

タイプ名は使用できません。

どうしたの?

4

2 に答える 2

8

次のように変更します。

int status = scanf(" (%lf,%lf)", &(point->x), &(point->y));

point型名ではなく、変数名を使用することを忘れないでくださいpoint_t。また、ポインター型で演算子を使用する必要があることに注意することも重要です->(これは、逆参照してからメンバー演算子 [ p->x == (*p).x] を使用することと同じです)。

于 2013-04-04T21:26:12.257 に答える
-3

このコードを試してください

typedef struct {
   double x;
   double y;
} point_t ;


typedef struct {
    point_t a;
    point_t b
    point_t c;
} triangle_t;

int read_point(point_t * point) {
    int status = scanf(" (&lf,&lf)", point->x, point->y);
    return(status);
}

構造体では、各フィールドをその型で宣言する必要があると思います。as の複数宣言はint x,y機能しません。次に、ポインタを渡しているので、アクセスするには、引数の名前を使用する必要があります (「ポイント」はこの場合point->fieldです)。(*point).field&point

于 2013-04-04T21:32:00.533 に答える