Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
73 / 7 / 0
Регистрация: 08.08.2012
Сообщений: 223
Записей в блоге: 1
1

Массив из n елементов

17.08.2012, 20:07. Показов 954. Ответов 15
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Разбираю код пример из книги, и вот столкнулся с недопониманием фрагмента кодпервое понятно что для инициализвации массива а из н, но не могли бы вы объяснить саму запись? Да, и что значит вторая выделеная фраза?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
 
using namespace std;
 
int main()
{
    int n;
    cin>>n;
   // int *a=new int [n];
    for(int i=0;i<n;i++) 
    { 
        cin>>a[i];
        if(a[i]>=0) a[i]+=2;
    }
    for(int i=0;i<n;i++) cout<<a[i]<<" ";
    cout<<endl;
    delete [] a;
    return 0;
}
Сам код добавляет 2 ко всем положительным элементам массива!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.08.2012, 20:07
Ответы с готовыми решениями:

шаблон функции который принимает в параметры массив количиство елементов и должен найти сумму елементов массив
шаблон функции который принимает в параметры массив количиство елементов и должен найти сумму...

Создать линейный массив, отсортировать его в другой массив, вывести адрес всех елементов
Помогите пожалуйста с кодом ,нужно за час сдать , напишите код , только попроще Создать линейный...

Создать линейный массив, отсортировать его в другой массив, вывести адрес всех елементов
Помогите пожалуйста, за час нужно сдать , напишите код , только попроще создать линейный массив...

Одномерный/двухмерный массив состоящий из елементов и заменить его елементы на
1)Задан одномерный массив состоящий из 12 элементов. Заменить единицами элементы массива,...

15
5 / 5 / 0
Регистрация: 08.07.2012
Сообщений: 20
17.08.2012, 20:41 2
Делается указатель на массив из n элементов
0
137 / 126 / 14
Регистрация: 03.07.2012
Сообщений: 355
17.08.2012, 20:53 3
C++
1
2
3
4
5
6
   // int *a=new int [n];      // выделяется блок памяти размером n
    for(int i=0;i<n;i++) 
    { 
        cin>>a[i];             // в ячейку a[i] вводится число
        if(a[i]>=0) a[i]+=2;  // если в этой ячейке положительное число, то к этому значению прибавляется 2
    }
0
21 / 21 / 1
Регистрация: 06.07.2012
Сообщений: 88
17.08.2012, 21:35 4
mr_free, здесь используется динамическое выделение памяти.Конкретно тут: создается массив,динамическим выделением памяти, указателей типа int из n элементов, юзер заполняет массив, все не отрицательные элементы инкрементируются на 2, массив выводится на экран, освобождается динамически выделенная память (после delete, [] явно указывает на удаление именно массива), функция main возвращает 0, что свидетельствует о правильном завершение программы.
0
Мой лучший друг-отладчик!
167 / 167 / 30
Регистрация: 24.06.2012
Сообщений: 662
Записей в блоге: 5
17.08.2012, 22:27 5
Да тут есть динамическое выделение памяти.

P.S Скажите плиз, а что лучше - так выделять память, как показано выше?Или всё же применять vector?
0
~ Эврика! ~
1256 / 1005 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
17.08.2012, 22:47 6
Если 1) размер массива будет изменяться; 2) не запрещает религия, то в 99% случаев лучше вектор. Потому что он внутри точно так же выделяет память, но в нём меньше ошибок, чем в реализации чего-то вектороподобного на коленке.
0
54 / 48 / 4
Регистрация: 02.08.2012
Сообщений: 127
18.08.2012, 00:10 7
Цитата Сообщение от ~OhMyGodSoLong~ Посмотреть сообщение
но в нём меньше ошибок
В нем совсем нет ошибок, если использовать правильно.
0
Эксперт С++
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
20.08.2012, 22:21 8

Не по теме:

Цитата Сообщение от cossack5 Посмотреть сообщение
В нем совсем нет ошибок, если использовать правильно.
А если использовать неправильно, ошибки в нём внезапно появляются?
Если серьёзно, то не стоит думать, что стандартная библиотека свята, а разработчики её - ангелы. Ошибки могут быть даже там, особенно если учесть, что недавно был принят новый стандарт, который добавляет множество новых вещей, а главное, расширяет множество старых.



По теме: конечно стоит использовать профессиональную библиотечную реализацию. Велосипеды хороши только для изучения строения этих самых велосипедов, в реальной задаче, решение которой заключается не в том, чтобы написать велосипед, стоит использовать готовую реализацию, даже если вы новичок (но только после того, как вы этот велосипед уже сами однажды написали )
0
OhMyGodSoLong
20.08.2012, 22:46
  #9

Не по теме:

Цитата Сообщение от silent_1991 Посмотреть сообщение
даже если вы новичок (но только после того, как вы этот велосипед уже сами однажды написали ]:->)
Подпускать писать программы только после того, как самостоятельно написан работающий компилятор! (Кстати, неплохая идея. Но в бурсах и цехах по полировке штанов не прокатит.)

0
4iFF
20.08.2012, 22:49
  #10

Не по теме:

Цитата Сообщение от ~OhMyGodSoLong~ Посмотреть сообщение
Подпускать писать программы только после того, как самостоятельно написан работающий компилятор!
Но ведь единственный способ научиться программировать на языке программирования - это писать на нем программы...

0
73 / 7 / 0
Регистрация: 08.08.2012
Сообщений: 223
Записей в блоге: 1
20.08.2012, 22:53  [ТС] 11
И чего вы так все взъелись?! Я не использую готовый код, что б потом о нем забыть, я читаю разбираю, что не понятно спрашиваю. Велосипед имеет свойство модернизироваться, ведь когда-то на велосипеде было только одно колесо!
0
Эксперт С++
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
21.08.2012, 02:15 12

Не по теме:

Цитата Сообщение от ~OhMyGodSoLong~ Посмотреть сообщение
Подпускать писать программы только после того, как самостоятельно написан работающий компилятор!
Парадокс, батенька :D. Компилятор - тоже программа, тем более работающий.



Добавлено через 5 минут
mr_free, да никто вроде не взъедался. Просто по основной теме сказать больше нечего - это действительно выделение динамической памяти необходимого размера. Но затем поступил околоплавающий вопрос про вектор, ответы на который и поступали в дальнейшем))

Не по теме:

Цитата Сообщение от mr_free Посмотреть сообщение
ведь когда-то на велосипеде было только одно колесо
Честно говоря, я почему-то сомневаюсь в подобной эволюции велосипеда... Мне кажется, что сначала были два, а то и три колеса, а уж потом, для особых мсье, сделали с одним. Может быть, я и ошибаюсь))

0
~ Эврика! ~
1256 / 1005 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
21.08.2012, 03:30 13

Не по теме:

Цитата Сообщение от silent_1991 Посмотреть сообщение
Парадокс, батенька :D. Компилятор - тоже программа, тем более работающий.
Да нет, лол, я ж не буквально «не разрешать свежезарегистрированным пользователям постить до набора 50 постов». Просто построение на коленке своего интерпретатора и компилятора (естессно, в байт-код) какого-нибудь языка может быть полезным при обучении. А то у многих программы так и остаются заклинаниями.
Вот только для этого программирование надо не «проходить», и язык выбрать попроще, а не Паскаль/Си/божеупаси-Си++.



Велосипеды это хорошо, способствуют общему развитию. Главное, не начинать возиться с велосипедом, когда надо было проехать 500 километров ещё вчера.
0
4iFF
21.08.2012, 15:10
  #14

Не по теме:

Цитата Сообщение от ~OhMyGodSoLong~ Посмотреть сообщение
Вот только для этого программирование надо не «проходить», и язык выбрать попроще, а не Паскаль/Си/божеупаси-Си++.
ну на С и Паскале пишут только динозавры и их изучение не перспективно, а вот если и изучать то С++.И вообще когда советуют что-то типа asm-pas-C-C++ на мой взгляд просто моразм.]:->

0
73 / 7 / 0
Регистрация: 08.08.2012
Сообщений: 223
Записей в блоге: 1
21.08.2012, 18:28  [ТС] 15
Цитата Сообщение от 4iFF Посмотреть сообщение

Не по теме:


ну на С и Паскале пишут только динозавры и их изучение не перспективно, а вот если и изучать то С++.И вообще когда советуют что-то типа asm-pas-C-C++ на мой взгляд просто моразм.]:->

То есть вы хотите сказать что в Майкрасофт сидят одни динозавры? Ведь все что они делают (ну, или почти все) идет через использование С! Например, Windows Phone 7, Windows Phone 8, под Xbox чисто ихние идут на С!
0
Эксперт С++
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
22.08.2012, 13:29 16
Цитата Сообщение от 4iFF Посмотреть сообщение
ну на С и Паскале пишут только динозавры и их изучение не перспективно
Вы не понимаете того, о чём говорите. Если вы думаете, что всё программирование заключается в написании пользовательских приложений для домохозяек, то вы глубоко заблуждаетесь.
0
22.08.2012, 13:29
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.08.2012, 13:29
Помогаю со студенческими работами здесь

Создать массив из положительных елементов и подсчитать количество елементов
сосдать массив с положительных елементов и подсчитать количество елементов. ps. елементы вводим...

Массив обмен елементов
В проекте предусмотреть введение элементов матрицы с клавиатуры через компонент StringGrid...

Массив елементов (отрицательные-положительные)
Помогите пожалуйста очень надо. Условие: В левых столбцах сгрупировать елементы с отрицательными...

Массив целых чисел состоит из n елементов
Найти сумму элементов, что имеют парные индексы.


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru