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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.64
Cristian
0 / 0 / 0
Регистрация: 25.10.2009
Сообщений: 8
#1

Вектор чисел. - C++

25.10.2009, 14:47. Просмотров 1342. Ответов 26
Метки нет (Все метки)

Нужно написать прогу, сам пытался но не смог. (желательно с обьяснением) Заранее спасибо!

Если в заданном целочисленном векторе A(N) есть элементы со значением, равным заданному числу B, то переменной С присвойте значение, равное сумме всех элементов, предшествующих первому по порядку такому элементу; в противном случае вывести соответствующий текст.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
niXman
Эксперт C++
3134 / 1446 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
25.10.2009, 14:52     Вектор чисел. #2
Язык программирования какой?
temni
0 / 0 / 0
Регистрация: 25.10.2009
Сообщений: 22
25.10.2009, 14:57     Вектор чисел. #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
int main(int argc, char *argv[])
{   int N(10), B(5), C(0); //N - Г°Г*çìåðГ*îñòü Г¬Г*Г±Г±ГЁГўГ*, B - èñêîìîå ÷èñëî
    int * a = new int[N]; //ñîçäГ*ВёГ¬ Г¬Г*Г±Г±ГЁГў
    for (int i=0;i<N;i++) cin>>a[i]; //Г§Г*ïîëГ*ГїГҐГ¬ ГҐГЈГ®
    for (int i=0;i<N;i++) 
    if (a[i]==B)
     for (int j=0;j<i;j++) C+=a[j]; //ñóììèðóåì Гў ñëó÷Г*ГҐ Г*Г*éäåГ*Г*îãî
    (C==0)?cout<<"No element":cout<<endl<<C;  //ГЇГҐГ·Г*ГІГҐГ¬ ðåçóëüòГ*ГІ
    system("PAUSE");
    delete [] a;
    return EXIT_SUCCESS;
}
niXman
Эксперт C++
3134 / 1446 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
25.10.2009, 15:03     Вектор чисел. #4
Цитата Сообщение от temni Посмотреть сообщение
N - размерность массива
Если размерность константна, почему бы не объявить N константой? В этом случае можно было бы обойтись без new, delete[].

Добавлено через 1 минуту
И еще. Раз уж пишешь на С++, почему не используешь алгоритмы? Код как у первоклашки.
temni
0 / 0 / 0
Регистрация: 25.10.2009
Сообщений: 22
25.10.2009, 15:03     Вектор чисел. #5
Цитата Сообщение от niXman Посмотреть сообщение
Если размерность константна, почему бы не объявить N константой? В этом случае можно было бы обойтись без new, delete[].
Если понадобится ввод с клавиатуры
niXman
Эксперт C++
3134 / 1446 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
25.10.2009, 15:04     Вектор чисел. #6
Я это к тому что есть контейнер std::vector<>
temni
0 / 0 / 0
Регистрация: 25.10.2009
Сообщений: 22
25.10.2009, 15:05     Вектор чисел. #7
Цитата Сообщение от niXman Посмотреть сообщение
Я это к тому что есть контейнер std::vector<>
а зачем? =)

пример простой, контейнерные типа излишни
Cristian
0 / 0 / 0
Регистрация: 25.10.2009
Сообщений: 8
25.10.2009, 15:09  [ТС]     Вектор чисел. #8
Язык С++.
PS: Ошибку выдает.
1>------ Build started: Project: Vector laba 3, Configuration: Debug Win32 ------
1>Compiling...
1>Vector laba 3.cpp
1>c:\documents and settings\cristian.home-17c69115cd\мои документы\visual studio 2008\projects\vector laba 3\vector laba 3\vector laba 3.cpp(3) : warning C4627: '#include <cstdlib>': skipped when looking for precompiled header use
1> Add directive to 'stdafx.h' or rebuild precompiled header
1>c:\documents and settings\cristian.home-17c69115cd\мои документы\visual studio 2008\projects\vector laba 3\vector laba 3\vector laba 3.cpp(4) : warning C4627: '#include <iostream>': skipped when looking for precompiled header use
1> Add directive to 'stdafx.h' or rebuild precompiled header
1>c:\documents and settings\cristian.home-17c69115cd\мои документы\visual studio 2008\projects\vector laba 3\vector laba 3\vector laba 3.cpp(20) : fatal error C1010: unexpected end of file while looking for precompiled header. Did you forget to add '#include "stdafx.h"' to your source?
1>Build log was saved at "file://c:\Documents and Settings\Cristian.HOME-17C69115CD\Мои документы\Visual Studio 2008\Projects\Vector laba 3\Vector laba 3\Debug\BuildLog.htm"
1>Vector laba 3 - 1 error(s), 2 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
temni
0 / 0 / 0
Регистрация: 25.10.2009
Сообщений: 22
25.10.2009, 15:11     Вектор чисел. #9
если пишете на visual c++ то необходимо включать stdafx.h.
niXman
Эксперт C++
3134 / 1446 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
25.10.2009, 15:11     Вектор чисел. #10
Цитата Сообщение от temni Посмотреть сообщение
контейнерные типа излишни
Ты еще скажи что изучение хорошего стиля написания тоже излишне.
temni
0 / 0 / 0
Регистрация: 25.10.2009
Сообщений: 22
25.10.2009, 15:13     Вектор чисел. #11
Цитата Сообщение от niXman Посмотреть сообщение
Ты еще скажи что изучение хорошего стиля написания тоже излишне.
Нисколько. Однако, человек, который не может написать данную программу сам, вряд ли обращает внимание на шлифовку стиля.
Cristian
0 / 0 / 0
Регистрация: 25.10.2009
Сообщений: 8
25.10.2009, 15:14  [ТС]     Вектор чисел. #12
Цитата Сообщение от temni Посмотреть сообщение
если пишете на visual c++ то необходимо включать stdafx.h.
Включил, 1 error(s), 3 warning(s) еще больше стало.
PS: Мне многое не понятно. из того что вы написали если честно, я только начал учиться так что....
temni
0 / 0 / 0
Регистрация: 25.10.2009
Сообщений: 22
25.10.2009, 15:18     Вектор чисел. #13
дайте журнал компиляции
Cristian
0 / 0 / 0
Регистрация: 25.10.2009
Сообщений: 8
25.10.2009, 15:23  [ТС]     Вектор чисел. #14
Где он находится ?
temni
0 / 0 / 0
Регистрация: 25.10.2009
Сообщений: 22
25.10.2009, 15:25     Вектор чисел. #15
напиши какие ошибки вылетают. у меня в visual c++ все скомпилировалось без ошибок
niXman
Эксперт C++
3134 / 1446 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
25.10.2009, 15:25     Вектор чисел. #16
Я бы сделал так:
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
struct summ_predicate {
    summ_predicate(int b):B(b),C(0) {}  
    void operator() (int v) {
        C += (v == B) ? v : 0;
    }
    /**  */
    int B;
    int C;
};
 
int main(int argc, const char** argv) {
    const int N = 20;
    const int B = 5;
    
    /** создаем массив */
    std::vector<int> array(N);
    
    /** заполняем */
    std::generate(array.begin(), array.end(), rand);
    
    /** считаем */
    summ_predicate result = std::for_each(array.begin(), array.end(), summ_predicate(B));
    
    /** выводим отчет */
    std::cout << "Summ = " << result.C << std::endl;
    
    return 0;
}
Стильно, элегантно, правильно.
Cristian
0 / 0 / 0
Регистрация: 25.10.2009
Сообщений: 8
25.10.2009, 15:28  [ТС]     Вектор чисел. #17
тут тоже 1 ошибка, и 3 критические(((
temni
0 / 0 / 0
Регистрация: 25.10.2009
Сообщений: 22
25.10.2009, 15:28     Вектор чисел. #18
да, так много лучше. =)
niXman
Эксперт C++
3134 / 1446 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
25.10.2009, 15:29     Вектор чисел. #19
Цитата Сообщение от Cristian Посмотреть сообщение
тут тоже 1 ошибка, и 3 критические(((
Ошибка не в коде, а твоей среде разработки. Отключи precompiled headers
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.10.2009, 15:30     Вектор чисел.
Еще ссылки по теме:

Разбить строку чисел в вектор C++
C++ Создать два класса: вещественные числа и вектор вещественных чисел
Ввод чисел в структуру вектор C++
Вектор действительных чисел C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
temni
0 / 0 / 0
Регистрация: 25.10.2009
Сообщений: 22
25.10.2009, 15:30     Вектор чисел. #20
Цитата Сообщение от Cristian Посмотреть сообщение
тут тоже 1 ошибка, и 3 критические(((
Не пытайтесь заменять исходный текст программы на тот, который вам предоставили полностью. создайте заново проект и добавьте вышеизложенное к нему. ошибок быть не должно.
Yandex
Объявления
25.10.2009, 15:30     Вектор чисел.
Ответ Создать тему
Опции темы

Текущее время: 09:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru