问题:
我能够创建代码并使它工作,如下所示,但是我必须事先为数组填写值,然后让用户输入替换这些预先指定的值,从而做到这一点。我的直觉是,有一种更好的方法可以做到这一点(例如,通过声明一个空数组开始),我想知道如何做。
尽管我能够使用以下命令使代码正常工作:
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)”
任何有关不写声明数组的方法的建议都是很棒的。
答案 0 :(得分:3)
您不必使用任何值初始化==
。您只需要声明它即可。
mainWindow