Error: expected primary-expression before ')' token - C (СИ)
Формулировка задачи:
Всем привет!
Прошу помощи.
Сократил код до минимума,чтобы проще было понять суть проблемы.
ругается на .amount.weight
error: expected primary-expression before ')' token.
Дело в том,что я изучаю эту тему,поэтому вопрос не стоит как "сделай проще и интереснее".
немного покопавшись частично удалось решить проблему так:
только суть в том,что работает только с целыми числами, например g.weight=2.5 уже работать не будет.
Возможно назначаемый инициализатор не работает так,как я пишу, как же тогда быть?)
#include <stdio.h> #include <limits.h> #include <float.h> #include <iostream> typedef union { short weight; } SU; typedef struct { const char *name; const char *country; SU amount; } CENTRE; int main() { setlocale(0, ""); CENTRE apples = {"Яблоки" , "Россия", .amount.weight}; }
int main() { setlocale(0, ""); // Введенные на русском параметры правильно отобразятся в консоли SU g; g.weight=2; CENTRE apples = {"Яблок" , "Россия", g.weight}; }
Решение задачи: «Error: expected primary-expression before ')' token»
textual
Листинг программы
SU g; g.weight=2; CENTRE apples = {"Яблок" , "Россия", g.weight};
Объяснение кода листинга программы
- Объявляется переменная типа SU типа g;
- Переменной g присваивается значение веса, равное 2;
- Объявляется массив CENTRE типа apples, содержащий три элемента:
Яблок
,Россия
, и значение переменной g (2); - Ошибка в строке с объявлением массива: вместо значения переменной g используется имя переменной без выделения в кавычки, что приводит к ошибке синтаксиса.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д