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

Как проще всего понять массивы? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ отсутствие результатов в программе http://www.cyberforum.ru/cpp-beginners/thread878421.html
пишу программу для курсовой работы но она не выдает результатов( помогите пожалуйста найти ошибку! мне кажется что я зря там всего понамешал( #include <fstream.h> #include <iostream.h> using...
C++ Где можно узнать про то как строить блок схемы по классам? В инете искал, так и не сумел найти как строить блок-схемы по классам сейчас изучаем ООП, препод у нас никакой поэтому я не знаю как строить блок-схемы по классам, если есть у кого хороший источник... http://www.cyberforum.ru/cpp-beginners/thread878418.html
C++ Схемы заполнения прямоугольной области. Из нижнего левого угла против часовой стрелки
Задание написано в названии темы. В этой программе заполнение идет Из верхнего левого угла против часовой стрелки, а надо как у меня в задании, помогите исправить: #include <graphics.h> #include...
Указатели в С++ C++
Очень прошу обьясните почему здесь value будет = 3200, а не = адресу памяти. код: int main() { int balance; int *balptr; int value; balance = 3200; balptr = &balance;
C++ Исправить легкую программу. Визуал 12 выдает ошибку :( http://www.cyberforum.ru/cpp-beginners/thread878390.html
выбивает ошибку по поводу оператора очистки экрана, хотя и необходимая библиотека включена :wall: #include <iostream> #include <Windows.h> #include <iomanip> #include <conio.h> #include...
C++ Множественное наследование #include "stdafx.h" #include <iostream> #include <string.h> #include <conio.h> using namespace std; class ship { protected: int x,y; public: подробнее

Показать сообщение отдельно
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6503 / 3139 / 307
Регистрация: 04.12.2011
Сообщений: 8,661
Записей в блоге: 5
26.05.2013, 13:17
Цитата Сообщение от Dicur3x Посмотреть сообщение
Вот например задача, непонятно как переписать эти элементы вообще...
Переписать элементы массива x в массив y и подсчитать количество тех из них, которые удовлетворяют условию -1 <= Xi <= 1;
Большее затруднение вызывает наверно перевод задачи в язык c++, потому что не пойму как это сделать.
Самое сложное наверное, понять и принять естественность хода мысли при программировании. Смотрите, когда Вам нужно переместить книжку на столе, Вы беретесь за книжку (начало - очень важный момент), а потом перекладываете её в выбранное место. В результате Вы получаете книжку в там где хотели (финал процедуры)). Если Вам нужно переместить объект в программе, то начинать нужно с конца. То есть нужно создать книжку в том месте где она должна быть, и только потом скопировать в неё оригинал.
Сначала это кажется странным, но поразмыслив Вы поймёте, что если бы книжку перемещал, даже не автомат, а просто другой человек и по условию он не может переместить книжку куда угодно (потому что найти ее где угодно нельзя в программе), то подготовка финала становится на первое место. То есть пока Вы не объясните куда нужно переместить, ничего не сдвинется с места.
В Вашей задачке можно бы сначала посчитать количество отрицательных элементов в исходном массиве:
C++
1
2
3
4
5
6
int a[]={1, -2, 3, 4, 5, -6, 7, 8, -9};//объявили и инициализировали массив из 9-ти элементов (источник).
//моделируем ситуацию, когда нам неизвестно какие элементы в массиве, но знаем его размер
int countNegativElems=0;//что бы посчитать, надо создать счётчик, чтобы сложить туда результирующие еденички
for( int i=0; i<9; ++i){//бежим по елементам
if(a[i]<0)countNegativElems=countNegativElems+1;//считаем отрицательные
}
такую запись можно сделать проще или вообще обойтись использованием функции sizeof(), но не это важно.)
Теперь зная размер можем создать массив для хранения отрицательных элементов (приемник):
C++
1
2
3
4
5
6
int b[countNegativElems]={0};//объявили и инициализировали массив countNegativElems элементов (приемник).
int m=0;//countNegativElems хранит количество, поэтому для перечисления массива b создаем новую переменную
for( int i=0; i<9; ++i){//бежим по елементам
if(a[i]<0)b[m]=a[i];//копируем отрицательные
m=m+1;
}
вот и всё, осталось вывести:
C++
1
2
3
for( int i=0; i<m ; ++i){//бежим по елементам
cout<<b[i];//выводим
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru