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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Johnlion
62 / 2 / 0
Регистрация: 11.05.2011
Сообщений: 666
#1

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

16.11.2011, 18:04. Просмотров 508. Ответов 5
Метки нет (Все метки)

задание: Объявить массив переменных 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
         }
Верно?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.11.2011, 18:04     Правильно ли объявлен массив?
Посмотрите здесь:

Объявлен массив строк. Как вывести на экран третью строку? - C++
char lines; char *pl = lines; a. cout << pl+3; b. cout << *(pl+3); c. cout << pl + 3*10; d. cout << pl +...

Не объявлен идентификатор IDC - C++
#include <Windows.h> #include <direct.h> #include <stdlib.h> #include <stdio.h> #include <ShlObj.h> #include "resource.h" ...

Ошибка: AInt не объявлен - C++
Пишу такую лабуду #define DEFINE_A (Name, Type) \ struct Name { ...

Ошибки undeclared, хотя include объявлен - C++
Здравствуйте! Такой код: #include "stdafx.h" #include <string> #include <fstream> #include <iostream> #include...

Почему изменение элемента массива, который был объявлен с размером [] - это UB? - C++
char str = "zzarb"; str = 'm'; // Undefined Behavior char str = "zzarb"; str = 'm'; // OK Что-то я не пойму, почему тогда все...

При потсроении пишет что конструктор либо недоступен либо объявлен как explicit - C++
/*Все обьекты содержимые в контейнерах без проблем выводятся через потоковые итераторы и алгоритм copy. Но когда речь идет о собственных...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
easybudda
Эксперт CЭксперт С++
9461 / 5474 / 927
Регистрация: 25.07.2009
Сообщений: 10,496
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
Студент
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
Эксперт С++
5769 / 3418 / 255
Регистрация: 08.02.2010
Сообщений: 7,446
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.

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

Причем для обозначения запятой в числах используется знак точки, а не запятая.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.11.2011, 18:19     Правильно ли объявлен массив?
Еще ссылки по теме:

не правильно заполняется массив - C++
#include<iostream> #include<fstream> using namespace std; int main() { int i,k,n,m,j,l; k = 0; l = 2;

Не правильно выводит массив - C++
переменные все типа iint, а выводит в 16-ой системе счисления i_max=i; j_max=j; te_max=te; } cout<<"tetta"<<te<<endl; ...

Заполнить правильно массив - C++
У меня есть матрица k*l и я заполняю его введенным сообщением. Дело в том, что сообщение короче, чем кол-во символов в матрице. Как...

Правильно удаляю массив объектов? - C++
Есть абстрактный класс Obj и много наследников (ObjOne, ObjTwo, ObjThree...). С помощью фабричного метода заполняю массив. Obj *obj; ...


Искать еще темы с ответами

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru