Проблема:
- Создание вложенной структуры для хранения координат конечных точек
отрезок.
- В программе запросите у пользователя координаты и
распечатайте их.
Мне удалось создать код и заставить его работать, как видно ниже, но я должен был сделать это, предварительно заполнив значения для массива, а затем пользовательский ввод заменил эти предварительно назначенные значения. Моя интуиция заключается в том, что есть лучший способ сделать это (например, объявить пустой массив для начала), и я хотел бы знать, как.
Хотя я смог заставить работать код, используя:
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, оператор вывода правильно печатает «Точка 1: (3,1) Точка 2: (4,8)»
Любые предложения о том, как сделать это без записи в объявленный массив, будут потрясающими.