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

массив целых чисел - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Центрирование - расположение строки s1 посередине строки s2 длины L. http://www.cyberforum.ru/cpp-beginners/thread333864.html
Центрирование - расположение строки s1 посередине строки s2 длины L. Свободные символы заполнить пробелы. Функция должна иметь вид void Center (L, s1, s2). Нельзя использовать библиотеку <string.h> ... Заранее спасибо!
C++ Как перейти в начало текстового файла? Какую строку добавить в код, чтоб перейти в начало файла? while (fin.get(ch)) { if (isdigit(ch)) ++num; } http://www.cyberforum.ru/cpp-beginners/thread333854.html
C++ Округление дробового числа
Здраствуйте . Нужно написать программку. У пользователя должны спросить какое число ввести надо, к примеру он введет 1.234567. Потом у пользователя спрашивают сколько оставить чисел, если 3 то должно получится 1.23, если 5 то 1.2346. Ну и округлить предведущие числа.
Программирование на языке C++ C++
Известны данные о мощности двигателей(в л.с.) и стоимость 30 легковых автомобилей. Определить общую стоимость автомобилей, у которых мощность двигателя превыщает 100 л.с.
C++ компиляция файла ms visual studio 2010 http://www.cyberforum.ru/cpp-beginners/thread333806.html
первый раз запустил программу , компилировал командой шифт+кнтрл+в , второй раз зашел в программу - команда не работает, меню 'построение' тоже не пашет, все серым цветом подвечено(деактивировано) (файл .cpp открыт)
C++ Ошибка в класси не могу найти Вот программа : #include <iostream> #include <conio.h> #include <locale.h> using namespace std; class Employee { public: подробнее

Показать сообщение отдельно
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
18.07.2011, 02:02     массив целых чисел
А ну да
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <stdio.h>
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
using namespace std;
 
 
bool IsOdd_1 (int x, int y){return ((x%2) && !(y%2));}
bool IsOdd_0 (int x, int y){return (!(x%2) && (y%2));}
 
int main(){
 
 int a[] = {5, 57, 10, 28, 20, 45, 51, 35, 23,17, 8, 5, 25, 10, 10, 90,  80, 1, 3, 5, 7};
 
 //Вспомогательный вектор
 vector <int> vec (2,2);
 vec.insert (vec.begin()+ 1, a, a+ sizeof(a)/sizeof(int));
 
 vector<int>:: iterator p_, p, temp;
 temp= p= p_= vec.begin();
 
 //А это вектор, состоящий из длин
 vector<int> dlini ;
 
 //НАходим длины и кидаем в вектор
 do {
  p= adjacent_find (vec.begin ()+ (p-  temp), vec.end (), IsOdd_0); 
  p_= adjacent_find(vec.begin ()+ (p_- temp), vec.end (), IsOdd_1); 
  dlini.push_back (p_++- p);
 }
 while (p++!= vec.end ()) ; 
 
 //НАходим максимум
 cout<< "max= "<< *max_element (dlini.begin(), dlini.end());
 getchar ();
 
};


Добавлено через 13 минут
А вот можно обойтись без дополнительной переменной temp/ Зачем плодить лишние сущности?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <stdio.h>
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
using namespace std;
 
 
bool IsOdd_1 (int x, int y){return ((x%2) && !(y%2));}
bool IsOdd_0 (int x, int y){return (!(x%2) && (y%2));}
 
int main(){
 
 int a[] = {5, 57, 10, 28, 20, 45, 51, 35, 23,17, 8, 5, 25, 10, 10, 90,  80, 1, 3, 5, 7, 9, 57};
 
 //Вспомогательный вектор
 vector <int> vec (2,2);
 vec.insert (vec.begin()+ 1, a, a+ sizeof(a)/sizeof(int));
 
 vector<int>:: iterator p_, p, temp;
 p= p_= vec.begin();
 
 //А это вектор, состоящий из длин
 vector<int> dlini ;
 
 //НАходим длины и кидаем в вектор
 do {
  p= adjacent_find (p, vec.end (), IsOdd_0); 
  p_= adjacent_find(p_, vec.end (), IsOdd_1); 
  dlini.push_back (p_++- p);
 }
 while (p++!= vec.end ()) ; 
 
 //НАходим максимум
 cout<< "max= "<< *max_element (dlini.begin(), dlini.end());
 getchar ();
 
};
Добавлено через 5 минут
Можно заполнение сделать одним оператором
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <stdio.h>
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
using namespace std;
 
 
bool IsOdd_1 (int x, int y){return ((x%2) && !(y%2));}
bool IsOdd_0 (int x, int y){return (!(x%2) && (y%2));}
 
int main(){
 
 int a[] = {5, 57, 10, 28, 20, 45, 51, 35, 23,17, 8, 5, 25, 10, 10, 90,  80, 1, 3, 5, 7, 57, 13 };
 
 //Вспомогательный вектор
 vector <int> vec (2,2);
 vec.insert (vec.begin()+ 1, a, a+ sizeof(a)/sizeof(int));
 
 vector<int>:: iterator p_, p;
 p= p_= vec.begin();
 
 //А это вектор, состоящий из длин
 vector<int> dlini ;
 
 //НАходим длины и кидаем в вектор
 do {
  dlini.push_back ((p_= adjacent_find(p_, vec.end (), IsOdd_1))++- (p= adjacent_find (p, vec.end (), IsOdd_0)));
 }
 while (p++!= vec.end ()) ; 
 
 //НАходим максимум
 cout<< "max= "<< *max_element (dlini.begin(), dlini.end());
 getchar ();
 
};
 
Текущее время: 11:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru