Error: expected primary-expression before ')' token - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Всем привет! Прошу помощи. Сократил код до минимума,чтобы проще было понять суть проблемы.
Листинг программы
  1. #include <stdio.h>
  2. #include <limits.h>
  3. #include <float.h>
  4. #include <iostream>
  5. typedef union {
  6. short weight;
  7. } SU;
  8. typedef struct {
  9. const char *name;
  10. const char *country;
  11. SU amount;
  12. } CENTRE;
  13.  
  14. int main()
  15. {
  16. setlocale(0, "");
  17. CENTRE apples = {"Яблоки" , "Россия", .amount.weight};
  18. }
ругается на .amount.weight error: expected primary-expression before ')' token. Дело в том,что я изучаю эту тему,поэтому вопрос не стоит как "сделай проще и интереснее". немного покопавшись частично удалось решить проблему так:
Листинг программы
  1. int main()
  2. {
  3. setlocale(0, ""); // Введенные на русском параметры правильно отобразятся в консоли
  4. SU g;
  5. g.weight=2;
  6. CENTRE apples = {"Яблок" , "Россия", g.weight};
  7. }
только суть в том,что работает только с целыми числами, например g.weight=2.5 уже работать не будет. Возможно назначаемый инициализатор не работает так,как я пишу, как же тогда быть?)

Решение задачи: «Error: expected primary-expression before ')' token»

textual
Листинг программы
  1. SU g;
  2. g.weight=2;
  3. CENTRE apples = {"Яблок" , "Россия", g.weight};

Объяснение кода листинга программы

  1. Объявляется переменная типа SU типа g;
  2. Переменной g присваивается значение веса, равное 2;
  3. Объявляется массив CENTRE типа apples, содержащий три элемента: Яблок, Россия, и значение переменной g (2);
  4. Ошибка в строке с объявлением массива: вместо значения переменной g используется имя переменной без выделения в кавычки, что приводит к ошибке синтаксиса.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.5 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут