Форум программистов, компьютерный форум CyberForum.ru

Правильно ли объявлен массив? - C++

Восстановить пароль Регистрация
 
Johnlion
 Аватар для Johnlion
62 / 2 / 0
Регистрация: 11.05.2011
Сообщений: 666
16.11.2011, 18:04     Правильно ли объявлен массив? #1
задание: Объявить массив переменных p вещественного типа, состоящий из 5 элементов. Инициализировать его значениями -0.002, 3.476, 10*23, 11*10-9,5. Тип данных элементов массива подобрать в соответствии с инициализацией.

результат:

C++
1
2
3
4
5
6
7
8
 float p[5]
         {
         float p[0]=-0,002
         float p[1]=3,476
         double p[2]=10*23, 
        double p[3]=11*10-9,
        int p[4]=5
         }
Верно?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
16.11.2011, 18:07     Правильно ли объявлен массив? #2
C
1
double p[5] = { -0.002, 3.476, 10.0 * 23.0, 11.0 * 10.0 - 9.0, 5.0 };
amor1k
Студент
 Аватар для amor1k
147 / 147 / 24
Регистрация: 18.01.2011
Сообщений: 469
16.11.2011, 18:08     Правильно ли объявлен массив? #3
C
1
2
3
4
float p[5];
p[0] = ...;
p[1] = ...;
......
Nameless One
Эксперт С++
 Аватар для Nameless One
5755 / 3404 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
16.11.2011, 18:11     Правильно ли объявлен массив? #4
  1. отдельные инструкции должны заканчиваться ';'
  2. фигурные скобки тут не нужны
  3. идентификаторы переменных объявляются только один раз
  4. в С/С++ нет гетерогенных массивов, т.е. если массив p объявлен как массив float, то его отдельные элементы не могут иметь другой тип
налицо ужасающее незнание синтаксиса языка. Я бы посоветовал почитать какой-нибудь учебник
Сыроежка
Заблокирован
16.11.2011, 18:11     Правильно ли объявлен массив? #5
Цитата Сообщение от Johnlion Посмотреть сообщение
задание: Объявить массив переменных p вещественного типа, состоящий из 5 элементов. Инициализировать его значениями -0.002, 3.476, 10*23, 11*10-9,5. Тип данных элементов массива подобрать в соответствии с инициализацией.

результат:

C++
1
2
3
4
5
6
7
8
 float p[5]
         {
         float p[0]=-0,002
         float p[1]=3,476
         double p[2]=10*23, 
        double p[3]=11*10-9,
        int p[4]=5
         }
Верно?
Нет, данная конструкция не будет компилироваться. Тип массива соответствует типу его элементов, то есть должен быть задан один тип. Он задается при объявлении массива.

Поэтому вы должны написать следующим образом

C++
1
 double p[5] = { -0,002, 3,476, 10*23, 11*10-9, 5 };
Или если вы используете язык С, то

C++
1
 double p[5] = {p[0]=-0,002, p[1]=3,476, p[2]=10*23, p[3]=11*10-9, p[4]=5 };
Я только не помню по памяти, то ли в С указывается только индекс в списке инициализации, как, например, [0]=-0,002, или также имя массива, как выше в примере p[0]=-0,002.

Но в любом случае сам компилятор вам подскажет, как надо правильно делать!

Причем для обозначения запятой в числах используется знак точки, а не запятая.
Nameless One
Эксперт С++
 Аватар для Nameless One
5755 / 3404 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
16.11.2011, 18:19     Правильно ли объявлен массив? #6
Цитата Сообщение от Сыроежка Посмотреть сообщение
Я только не помню по памяти, то ли в С указывается только индекс в списке инициализации, как, например, [0]=-0,002, или также имя массива, как выше в примере p[0]=-0,002.
только индекс. Но такой синтаксис (designated initializers), описывается, ЕМНИП, стандартом C99, так что лучше пользоваться вариантом, аналогичным приведенному варианту C++
Yandex
Объявления
16.11.2011, 18:19     Правильно ли объявлен массив?
Ответ Создать тему
Опции темы

Текущее время: 22:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru