2 / 2 / 0
Регистрация: 16.07.2010
Сообщений: 55
|
||||||
1 | ||||||
Описать массив Plane размерности 1017.11.2010, 12:57. Показов 1276. Ответов 15
Метки нет (Все метки)
Приветствую. Имеется небольшой вопрос по Си.
Нужно описать две структуры: Point (содержит три double-переменные: X, Y и Z) и Plane (содержит три переменные Point). После чего нужно описать массив Plane размерности 10, к примеру. Делаю так:
=== На Си особо никогда не кодил (только C++), сча появилась необходимость, а многого не знаю.
0
|
17.11.2010, 12:57 | |
Ответы с готовыми решениями:
15
Описать структуру с именем Plane Дан массив Х размерности n, сформировать массив Y той же размерности Описать методы для работы с матрицей размерности MxN Описать методы для работы с матрицей размерности MxN |
2 / 2 / 0
Регистрация: 16.07.2010
Сообщений: 55
|
|
17.11.2010, 13:11 [ТС] | 3 |
Дописал, но ругани все-равно много.
Где ругаеццо (компилю MinGW кстати, забыл совсем сказать): Строка 10 (в приведенном мною куске): syntax error before "Point" Строка 10: warning: no semicolon at end of struct or union Строка 17: error: invalid application of `sizeof' to incomplete type `Plane' (уже после дописанного struct).
0
|
2 / 2 / 0
Регистрация: 16.07.2010
Сообщений: 55
|
|
17.11.2010, 13:18 [ТС] | 5 |
Ничего не изменилось
0
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
|||||||||||
17.11.2010, 13:30 | 7 | ||||||||||
в си надо перед типом добавлять struct
собственно это особенность того как си понимает типы
1
|
2 / 2 / 0
Регистрация: 16.07.2010
Сообщений: 55
|
||||||
17.11.2010, 13:33 [ТС] | 8 | |||||
В
Откомпилило вроде, спасибо Без ";" кстати пишет, что "two or more data types in declaration of 'Planes'". Далее вопрос: правильным будет обращение Planes[0].points[0].X, при условии выделения памяти для Planes[0]? Там ее вообще нужно выделять? Пытаюсь считать туда значение из стандартного потока ввода как scanf("%fl", &(Planes[i].points[0].X)); Материццо "error: request for member `points' in something not a structure or union". === Alex_x_x, спасиб за пояснение Уже да, понял, что так просто из C++ в C не прийти
0
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
|
17.11.2010, 13:37 | 10 |
Planes массив из 10 указателей
Planes[0] можно делать, а вот Planes[0].points[0] без выделения памяти уже нельзя
1
|
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
|
||||||||||||||||
17.11.2010, 13:45 | 11 | |||||||||||||||
Добавлено через 2 минуты
а, точно, показалось мне объявление структуры считается оператором, а операторы завершаются ;
0
|
2 / 2 / 0
Регистрация: 16.07.2010
Сообщений: 55
|
||||||
17.11.2010, 13:56 [ТС] | 12 | |||||
Всем огромное спасибо
Теперь оно компилится без проблем совершенно. Но, есть еще одна непонятнка (надеюсь, что уже последняя): оно не некорректно как-то читает число из стандартного потока. Читаю его как scanf("%lf", &Planes[i]->points[0]->X);, сразу после чего делаю вывод printf("x1: %.1lf\n", Planes[i]->points[0]->X); Вот тут выводит "0.0", что странно, ибо ввожу другое. В чем может быть дело? Вообще, код моего приложеньица:
0
|
2 / 2 / 0
Регистрация: 16.07.2010
Сообщений: 55
|
|
17.11.2010, 14:11 [ТС] | 14 |
Убрал, но ничего не изменилось.
1
|
2 / 2 / 0
Регистрация: 16.07.2010
Сообщений: 55
|
|
17.11.2010, 14:52 [ТС] | 16 |
Если точнее:
После запуска приложени появляется запрос на ввод количества плоскостей (Enter the number of planes). Вводим 5, к примеру. Видим надписи, побуждающие ввести координаты точек: Enter planes points coordinates. Format: (x1, y1, z1, x2, y2, z2, x3, y3, z3) Ну и появляется запрос на ввод точек первой плоскости (там одна сча для теста, читается как scanf("%fl", &Planes[i]->points[0]->X)). Вводим к примеру 5.4. После ввода, как видно по коду, идет запись этого числа в компоненту X первой точки первой плоскости А далее - вывод этой компоненты (printf("x1: %f\n", Planes[i]->points[0]->X)). Выводит как 0.000000, в этом и проблема. Добавлено через 32 минуты Затупил я там в общем и перепутал символы в строке типов параметров scanf (%fl написал). Переработал уже сегодня, в общем. Всем огромное спасибо за пояснения по структурам
0
|
17.11.2010, 14:52 | |
17.11.2010, 14:52 | |
Помогаю со студенческими работами здесь
16
Описать методы для работы с матрицей размерности MxN Описать методы для работы с матрицей размерности MxN Описать методы для работы с матрицей размерности MxN Описать методы для работы с матрицей размерности MxN Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |