Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 嵌套结构中用户输入2D数组的语法?_C - Fatal编程技术网

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

C 嵌套结构中用户输入2D数组的语法?,c,C,问题: 创建一个嵌套结构,以存储数据的端点坐标 线段。 在程序中,提示用户输入坐标和 打印它们。 我能够创建代码并使其正常工作,如下所示,但我必须通过事先填写数组的值,然后让用户的输入替换这些预先指定的值来完成。我的直觉是,有一种更好的方法可以做到这一点(例如,首先声明一个空数组),我想知道如何做到这一点 虽然我能够通过使用以下方法使代码正常工作: lineseg myline={{4,2},{5,9},这不是我想要的 我曾多次尝试创建空数组,但都没有成功 e、 例如,通过尝试lineseg

问题:

  • 创建一个嵌套结构,以存储数据的端点坐标 线段。
  • 在程序中,提示用户输入坐标和 打印它们。
我能够创建代码并使其正常工作,如下所示,但我必须通过事先填写数组的值,然后让用户的输入替换这些预先指定的值来完成。我的直觉是,有一种更好的方法可以做到这一点(例如,首先声明一个空数组),我想知道如何做到这一点

虽然我能够通过使用以下方法使代码正常工作:
lineseg myline={{4,2},{5,9},这不是我想要的

我曾多次尝试创建空数组,但都没有成功

e、 例如,通过尝试
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;
}
#包括
类型定义结构
{
int x,
Y
}点;
类型定义结构
{
第1点,
pt2;
}lineseg;
void main()
{
lineseg myline={4,2},{5,9};
printf(“输入第一个点的x坐标:”;
scanf(“%d”和myline.pt1.x);
printf(“输入第一个点的y坐标:”;
scanf(“%d”和myline.pt1.y);
printf(“为第二个点输入x坐标:”;
scanf(“%d”和myline.pt2.x);
printf(“输入第二个点的y坐标:”;
scanf(“%d”和myline.pt2.y);
printf(“\n点1:(%d,%d)点2:(%d,%d)”,myline.pt1.x,
myline.pt1.y,myline.pt2.x,myline.pt2.y);
返回0;
}
当我输入3、1、4和8时,output语句正确地打印“点1:(3,1)点2:(4,8)”


任何关于如何在不写入已声明数组的情况下执行此操作的建议都将非常棒。

您不必使用任何值初始化
myline
。你只需要申报

lineseg myline;