Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.03.2011, 16:04   #1
echelone
Пользователь
 
Регистрация: 20.03.2011
Сообщений: 22
По умолчанию Одномерный массив,не могу понять

Здравствуйте,не могу понять как сделать задачу в с++
Дан одномерный массив А. Окончание ввода элементов является "0". Найти количество положительных и отрицательных чисел данного массива
Заранее спасибо
echelone вне форума Ответить с цитированием
Старый 20.03.2011, 16:24   #2
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

на здоровье

Код:
#include <iostream>
#include <vector>
#include <iterator>
#include <algorithm>

using namespace std;

int main()
{
	vector<int> v;

	for (istream_iterator<int> It(cin); *It != 0; ++It)
		v.push_back(*It);

	cout << "positive = " << count_if(v.begin(), v.end(), bind2nd(greater<int>(), 0)) << endl
	     << "negative = " << count_if(v.begin(), v.end(), bind2nd(less<int>(), 0)) << endl;

	return 0;
}
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 20.03.2011, 16:58   #3
echelone
Пользователь
 
Регистрация: 20.03.2011
Сообщений: 22
По умолчанию

Спасибо огромное,вот только не как не могу найти строчку в программе,если ты нажимаешь 0 то оно должно выйти,не подскажешь?))
echelone вне форума Ответить с цитированием
Старый 20.03.2011, 16:58   #4
echelone
Пользователь
 
Регистрация: 20.03.2011
Сообщений: 22
По умолчанию

Цитата:
Сообщение от pproger Посмотреть сообщение
на здоровье

Код:
#include <iostream>
#include <vector>
#include <iterator>
#include <algorithm>

using namespace std;

int main()
{
	vector<int> v;

	for (istream_iterator<int> It(cin); *It != 0; ++It)
		v.push_back(*It);

	cout << "positive = " << count_if(v.begin(), v.end(), bind2nd(greater<int>(), 0)) << endl
	     << "negative = " << count_if(v.begin(), v.end(), bind2nd(less<int>(), 0)) << endl;

	return 0;
}
Спасибо огромное,вот только не как не могу найти строчку в программе,если ты нажимаешь 0 то оно должно выйти,не подскажешь?))
echelone вне форума Ответить с цитированием
Старый 20.03.2011, 23:49   #5
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Код:
*It != 0
...............................
p51x вне форума Ответить с цитированием
Старый 20.03.2011, 23:56   #6
kaljan775
:D
Форумчанин
 
Аватар для kaljan775
 
Регистрация: 26.09.2010
Сообщений: 570
По умолчанию

Код:
#include <iostream>
using namespace std;
int main(){
int kolplus=0;
int kolminus=0;
int chislo=1;
while(1){
std::cin>>chislo;
if (chislo<0) kolminus++;
if (chislo>0) kolplus++;
if (!chislo) break;
}
cout<<endl<<colplus<<endl<<colminus;
}
Пишу ПО, создаю сайты, делаю курсовые работы, за деньги
C#, .NET, MS SQL, AngularJS, HTML, jQuery
kaljan775 вне форума Ответить с цитированием
Старый 21.03.2011, 00:20   #7
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2kaljan775
во-первых - читай задание. ему массив надо заполнить, над ним уже операции произвести.
во-вторых, ну что за ужос, ейбогу.

Код:
if (chislo<0) kolminus++;
if (chislo>0) kolplus++;
if (!chislo) break;
зачем каждый раз условие проверять. если число отрицательно, оно уже не может быть положительно, либо равным нулю.
if-else же

Код:
if (n > 0) {
} else if (n < 0) {
} else {
}
ну и если без контейнера, то яб написал так
Код:
#include <iostream>
#include <iterator>

using namespace std;

int main()
{
	int pos_count = 0, neg_count = 0;

	for (istream_iterator<int> It(cin); *It != 0; ++It)
		++(*It < 0 ? neg_count : pos_count);

	cout << "positive = " << pos_count << endl
	     << "negative = " << neg_count << endl;

	return 0;
}
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance

Последний раз редактировалось pproger; 21.03.2011 в 00:22.
pproger вне форума Ответить с цитированием
Старый 21.03.2011, 15:47   #8
kaljan775
:D
Форумчанин
 
Аватар для kaljan775
 
Регистрация: 26.09.2010
Сообщений: 570
По умолчанию

согласен, ужас, его еще можно через свитч сделать :D
Пишу ПО, создаю сайты, делаю курсовые работы, за деньги
C#, .NET, MS SQL, AngularJS, HTML, jQuery
kaljan775 вне форума Ответить с цитированием
Старый 21.03.2011, 16:02   #9
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

Цитата:
Сообщение от kaljan775 Посмотреть сообщение
согласен, ужас, его еще можно через свитч сделать :D
если только с доп переменной, что еще кривее.
switch тут совсем не к месту. лишнюю работу только делать

пс.
эту задачу вообще без условий можно сделать
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance

Последний раз редактировалось pproger; 21.03.2011 в 16:11.
pproger вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
не могу понять... svoi92 Помощь студентам 1 08.02.2011 14:51
Не могу найти ошибку.. одномерный массив, убывающая последовательность Malloperro Помощь студентам 1 23.12.2010 21:15
СРОЧно нужна помощь(одномерный массив)СРОЧНО, МОГУ заплатить. warsong Фриланс 12 11.01.2010 20:30
Не могу понять Superlotles Помощь студентам 8 31.08.2009 20:39
задача на массив решите пожалуйста не могу ни как понять LIL_VAdiK Помощь студентам 2 18.02.2009 23:40