Мусор при инициализации структуры - C (СИ)
Формулировка задачи:
Доброго времени суток. Я отказываюсь понимать, какого черта структура не инициализируется. Код:
Вместо значений - мусор! Что это значит вообще?
typedef struct Circle { double R; //Радиус Point O; //Центр };
Arr = (Circle *)malloc(N * sizeof(Circle)); for (int i = 0; i < N; i++) { printf("Круг %d: ", i + 1); printf("R = "); scanf_s("%f", &Arr[i].R); printf("x = "); scanf_s("%f", &Arr[i].O.x); printf("y = "); scanf_s("%f", &Arr[i].O.y); }
Решение задачи: «Мусор при инициализации структуры»
textual
Листинг программы
#include <stdio.h> typedef struct Point { double x; double y; }; typedef struct Circle { Point pos; double r; }; int main() { Circle kugel = { { 10., 20. }, 35 }; printf("X: %.1f; Y: %.1f; R: %.1f\n", kugel.pos.x, kugel.pos.y, kugel.r); return 0; }
Объяснение кода листинга программы
- Подключение стандартной библиотеки файлов ввода-вывода
- Объявление структуры Point с полями x и y типа double
- Объявление структуры Circle с полем pos типа Point и полем r типа double
- Инициализация структуры Circle с помощью фигурных скобок, значения по умолчанию для поля r равны 0.
- Вывод значений полей структуры Circle на экран с помощью функции printf
- Возврат значения 0 в конце функции main
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д