![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
stargame |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 16.3.2016 Репутация: нет Всего: нет |
Сгенерировать и вывести на экран массив с 10 рандомных чисел от -50 до 50. Положительные элементы массива перенести в другой массив №1, а отрицательные в другой №2.
#include "stdafx.h" #include <iostream> #include <conio.h> using namespace std; int _tmain(int argc, _TCHAR* argv[]) { int *mas, n; cout<< "n="; cin>> n; mas = new int[n]; int positiv = 0, negativ = 0; for (int j = 0; j<n; j++) { mas[j] = rand() % 101 - 50; cout<< mas[j]<< " "; if (mas[j]<0) negativ++; if (mas[j]>0) positiv++; } int *mas_p = new int[positiv]; int *mas_n = new int[negativ]; _getch(); } |
|||
|
||||
rudolfninja |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 341 Регистрация: 19.2.2013 Где: г. Минск Репутация: 1 Всего: 6 |
Вы код забыли полностью дописать.
Если вы этот код писали самостоятельно, то, в принципе, у вас не должно возникнуть проблем с дальнейшим решением задачи. Еще я бы как-нибудь обработал ситуацию с нулевыми элементами. В чем именно проблема? Это сообщение отредактировал(а) rudolfninja - 16.3.2016, 21:18 |
|||
|
||||
baldman88 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 210 Регистрация: 18.1.2009 Репутация: 1 Всего: 7 |
Если про 0 в задании ничего не сказано, то вариант автора вполне имеет право на жизнь. Он же никакой
![]() Во-первых, зачем вводить размерность массива? Она задана в задании (10). Во-вторых, зачем Вам указатели? В задании про них ни слова. Но если уж Вы их создаете, то сразу приучивайтесь их удалять (когда они становятся не нужны). Ну и импортировать пространства имен не есть хорошо (субъективное мнение). В результате должно получиться что-то вроде такого:
Выглядит халтурно, но, по идее, должно работать. И еще вопрос, а разве инициализировать генератор случайных чисел не нужно? |
|||
|
||||
disputant |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 210 Регистрация: 28.11.2011 Репутация: нет Всего: 3 |
Как минимум это не должно сработать - размер массива должен быть известен во время компиляции... |
||||
|
|||||
dreindeimos |
|
|||
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 4.6.2015 Репутация: нет Всего: нет |
ошибка в размерах масива
|
|||
|
||||
baldman88 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 210 Регистрация: 18.1.2009 Репутация: 1 Всего: 7 |
Дык, на дворе уже 2016 год. Или для лабораторных работ строго-настрого запрещено пользоваться С++11?
И да, в 40-й строке mas_p нужно заменить на mas_n. Если без С++11, то как-то так:
|
|||
|
||||
disputant |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 210 Регистрация: 28.11.2011 Репутация: нет Всего: 3 |
Берем последний Visual C++ 2015.
Имеем: error C2131: выражение не определяется константой Витая в эмпиреях, вы можете использовать распоследний стандарт, но компилировать вы будете на земле реальным компилятором... |
||||
|
|||||
baldman88 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 210 Регистрация: 18.1.2009 Репутация: 1 Всего: 7 |
Искренне Вам сочувствую ... Свет не сошелся клином на поделиях MS. Это сообщение отредактировал(а) baldman88 - 19.3.2016, 00:09 |
|||
|
||||
disputant |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 210 Регистрация: 28.11.2011 Репутация: нет Всего: 3 |
А если вы по gcc - так в нем, на котором, видимо, у вас свет сошшелся, это расширение было уже очень давно. Если вам не трудно, приведите еще 2-3 примера компиляторов, которые это скомпилируют. Просто чтоб понимать, до какой степени отстой этот Microsoft, и что все остальные давно умеют делать такие стандартные вещи... Забавно, что отстойный сайт http://en.cppreference.com/w/cpp/language/array утверждает, что даже с C++14 там должно быть константное выражение, известное во время компиляции... P.S. Полез в стандарт - п. 8.3.4, In a declaration T D where D has the form D1 [ constant-expressionopt] attribute-specifier-seqopt Так что свет клином, надо понимать, и на стандарте не сошелся... Это сообщение отредактировал(а) disputant - 19.3.2016, 19:01 |
||||
|
|||||
baldman88 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 210 Регистрация: 18.1.2009 Репутация: 1 Всего: 7 |
Ваш ник говорит сам за себя
![]() Дальше идем по линии идеологии. С++, по идее, является надстройкой над С . Смотрим в стандарт С99 ... (смотрят разработчики всех Нормальных компиляторов). И да, эта дискуссия уже выходит далеко за рамки темы поста. Так что давайте не будем вдаваться в подробности. Это сообщение отредактировал(а) baldman88 - 20.3.2016, 02:20 |
|||
|
||||
disputant |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 210 Регистрация: 28.11.2011 Репутация: нет Всего: 3 |
Даже Страуструп пишет, что очень большая ошибка - считать С++ расширением языка C. А посему - особенно в ответах для начинающих и для переносимости - я считаю, что нужно использовать стандарт, а любые от него отклонения документировать ![]() Что до последнего пожелания... Считаю, что как раз начинающим будет полезнее рассказывать, пусть и не подробно, но со всей строгостью закона. Да, это обычно трудно, но - взялся за гуж... |
|||
|
||||
_zorn_ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1077 Регистрация: 21.8.2007 Репутация: нет Всего: 12 |
||||
|
||||
baldman88 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 210 Регистрация: 18.1.2009 Репутация: 1 Всего: 7 |
Это конечно хорошо, что Вы так сведущи в стандарте. Я подробно его не читал (кроме некоторых моментов). Но для работы я по максимуму пользуюсь удобствами, предоставляемыми инструментами, которыми я пользуюсь. Ну и по порядку: Во-первых, в данном случае озвученный выше функционал предоставляют два кроссплатформенных компилятора. То, что windows-only msvc этого не поддерживает, делает его еще менее привлекательным для реального использования. Во-вторых, я привел два рабочих решения. Почему я их привел? ТС привел кусок кода. Значит он где-то его взял (написал сам, помогли друзья-товарищи, дал преподователь и сказал сделать задание, указанное в топике, и т.д. и т.п.). Если ТС хоть немного разбирается вопросе, то он сам до всего дойдет. Если нет, то и приведенные решения ему не помогут. Это сообщение отредактировал(а) baldman88 - 21.3.2016, 09:33 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |