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

Не могу найти ошибку - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Объяснение части кода http://www.cyberforum.ru/cpp-beginners/thread1138628.html
ребят, помогите пожалуйста) не могу разобраться в коде typedef struct derevo { int data; derevo *left; derevo *right; } node; node * search (node * tree, int data) //поиск места для элементов дерева {
C++ Метод защиты от дурака Всем привет, у меня есть код ну нет защиты от ввода букв с клавы((, помогите пожалуйста сделать эту защиту. Вот код: #include "stdafx.h" #include <iostream> #include <stdio.h> const int d=100; const int t=50; //константный размер матрицы http://www.cyberforum.ru/cpp-beginners/thread1138599.html
Организовать поиск в структуре C++
Задача на тему : Структуры. Список сведений о животных в зоопарке. Каждая строка списка содержит наименование вида , пол, дату ,необходимую калорийность ежедневного рациона , логический признак - требуется ли содержание в теплом помещении в зимнее время года . Обеспечить поиск а) самого молодого животного по заданной подстроке наименования вида; б) трех животных заданного пола с наименьшей...
C++ Найти зарплату на основе данных двумерного массива
в двумерном массиве храниться информация о зарплате 20 человек за каждый месяц года (Первого человека в 1 строке Второго человека во второй строке и т.д.) Составить программу для расчета общей зарплаты полученой за год одним любым человеком Информация о зарплате которого представлена в массиве
C++ Вывести все элементы массива кратные 3 и удовлетворяющие условию -10<=p[i]<=15 http://www.cyberforum.ru/cpp-beginners/thread1138591.html
Помогите решить C++ Дан массив p, заполненный с клавиатуры Вывести все элементы кратные 3 и удовлетворяющие условию -10<=p<=15
C++ Нужно чтобы введённый студент в методе in вывелся на экран как в методе out #include<conio.h> #include<stdio.h> #include<iostream.h> #include<windows.h> #include<cstring.h> // это просто для русских инициалов // char buff; char *ToAcii(char *s) подробнее

Показать сообщение отдельно
Poma_095
0 / 0 / 0
Регистрация: 14.03.2014
Сообщений: 23
04.04.2014, 08:26     Не могу найти ошибку
Сумму элементов последовательности, расположенных между первым и вторым положительными элементами.
При помощи итераторов.

Если нету второго положительного должно выдавать ошибку, а тут оно считает с первого положительного до конца.

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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#include <windows.h>
 
#include <iostream>
#include <vector>
#include <iterator>
#include <math>
using namespace std;
void vvod (vector<int> &v);
int summ (vector<int> &v);
 
int main(int argc, char* argv[]) {
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
 
/* объявление вектора дробных чисел */
vector<int> v;
 
vvod (v);
int sum=summ (v);
 
 
cout << "Сумма элементов: " << sum << endl;;
 
system("pause");
 
return 0;
}
 
void vvod(vector<int> &v)
 {
      
 
        cout << "Введите последовательность дробных чисел (конец ввода - Ctrl+Z)" << endl;
        /* объявление итератора для чтения дробных чисел из потока (cin) */
        istream_iterator<int> cin_iter(cin);
        /* итератор - конец потока (любого) дробных чисел */
        istream_iterator<int> cin_end;
        /* дошли до конца потока? */
        while(cin_iter != cin_end) {
        /* взять текущий элемент из потока */
        double x = *cin_iter;
        /* добавить его в вектор */
        v.push_back(x);
        /* перейти к следующему элементу потока */
        cin_iter++;
        }
 }
 //сумма элементов после первого 0
 int summ(vector<int> &v)
 {
        istream_iterator<int> cin_iter(cin);
        istream_iterator<int> cin_end;
 
 
 
        /* объявление итератора - указателя на элемент вектора */
        vector<int>::iterator iter;
        int s=0;
 
        /* начинаем с начала вектора */
        iter = v.begin();
      while(*iter<=0) {
      iter++;
     // cout << *iter<<'\n';
      }
     // cout << *iter<<'\n';
      iter++;
     /* дошли до конца вектора? */
        while(*iter<=0)  {
     //    cout << *iter<<'\n';
        s=s+*iter;
 
        iter++;
        }
        return s;
 }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 01:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru