嵌套结构中用户输入2D数组的语法?

时间:2019-04-16 20:42:05

标签: c

问题:

  • 创建一个嵌套结构以存储对象的端点坐标 线段。
  • 在程序中,提示用户输入坐标并 打印它们。

我能够创建代码并使它工作,如下所示,但是我必须事先为数组填写值,然后让用户输入替换这些预先指定的值,从而做到这一点。我的直觉是,有一种更好的方法可以做到这一点(例如,通过声明一个空数组开始),我想知道如何做。

尽管我能够使用以下命令使代码正常工作:         lineseg myline = {{4,2},{5,9}};,这不是我想要的。

我尝试创建一个空数组,但是没有一个奏效。

例如,尝试使用lineseg myline[2][2];

#include <stdio.h>

typedef struct
{
    int x,
        y;
} point;

typedef struct
{
    point pt1,
          pt2;
} lineseg;

void main()
{
    lineseg myline = {{4,2},{5,9}};

    printf("Enter x coordinate for the first point: ");
    scanf("%d",&myline.pt1.x);
    printf("Enter y coordinate for the first point: ");
    scanf("%d",&myline.pt1.y);
    printf("Enter x coordinate for the second point: ");
    scanf("%d",&myline.pt2.x);
    printf("Enter y coordinate for the second point: ");
    scanf("%d",&myline.pt2.y);
    printf("\nPoint 1: (%d,%d)  Point 2: (%d,%d)",myline.pt1.x,
           myline.pt1.y,myline.pt2.x,myline.pt2.y);
    return 0;
}

当我输入3,1、4和8时,输出语句正确打印“ Point 1:(3,1)Point 2:(4,8)”

任何有关不写声明数组的方法的建议都是很棒的。

1 个答案:

答案 0 :(得分:3)

您不必使用任何值初始化==。您只需要声明它即可。

mainWindow