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

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

Войти
Регистрация
Восстановить пароль
 
zEg0r
0 / 0 / 0
Регистрация: 26.03.2010
Сообщений: 16
#1

массив - C++

16.09.2010, 19:59. Просмотров 780. Ответов 15
Метки нет (Все метки)

В одномерном массиве, состоящем из n вводимых с клавиатуры целых элементов, вычислить сумму элементов массива, расположенных до минимального элемента.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.09.2010, 19:59     массив
Посмотрите здесь:

Вывести на печать массив X, массив Z, массив Y, произведение элементов массива X, упорядоченный массив Y - QBasic
Вывести на печать массив X, массив Z, массив Y, произведение элементов массива X, упорядоченный массив Y. ...

Дан одномерный массив A из N элементов. Переписать положительные элементы массива в массив B, а отрицательные в массив C - Pascal
Дан одномерный массив A из N элементов. Переписать положительные элементы массива в массив B, а отрицательные в массив C.

Сформировать массив, который будет состоять из чисел, входящих как в массив A, так и в массив B - C (СИ)
Задание: На основе исходных массивов A и B (n и m – рабочие размеры массивов) сформировать массив C, который будет состоять из чисел,...

Дан массив целых чисел а(12). Переписать в массив х четные, а в массив у нечетные элементы массива а - Turbo Pascal
Помогите пожалуйста решить эту задачу. Массив a выводит на печать. Я пишу a mod 2 = 0 , а он мне 41 ошибку выдает. Что делать? Вот...

Массив: Отсортировать полученный массив 3 способами: по строкам, по столбцам( возр.), 3) и весь массив - Delphi
Помогите, пожалуйста ,решить задачу. Очень нужно. Задан массив (4*6). Элементы задаются по правилу: если j>3, то Aij=i+j, иначе...

Массив: Как сделать так, чтобы результирующий массив представлял собой измененный по заданным правилам первый массив? - C++ Builder
Доброй ночи форумчане, очередной нубо-вопрос не требует отлагательств имеется одномерный массив, из которого по заданным условиям...

Построить массив d из элементов, которые входят как в массив a так и в массив b - C (СИ)
Дан массив a и b состоящий из n элементов. Построить массив d из элементов, которые входят как в массив a так и в массив b. Желательно с...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
В астрале
Эксперт С++
7968 / 4730 / 320
Регистрация: 24.06.2010
Сообщений: 10,539
Завершенные тесты: 3
16.09.2010, 20:07     массив #2
zEg0r,

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <vector>
#include <algorithm>
#include <numeric>
 
int main()
{
    int n, elem;
    std::cout<<"Enter n: ";
    std::cin>>n;
    std::vector<int> Vec;
    for(int i=0; i<n; ++i)
    {
         std::cin>>elem;
         Vec.push_back(elem);
    }
    std::vector<int>::iterator It=std::min_element(Vec.begin(), Vec.end());
    std::cout<<"Min= "<<*It<<'\n';
    int sum=std::accumulate(Vec.begin(), It, 0);
    std::cout<<"Sum= "<<sum<<'\n';
    return 0;
}
zEg0r
0 / 0 / 0
Регистрация: 26.03.2010
Сообщений: 16
16.09.2010, 20:25  [ТС]     массив #3
Lavroff, не работает чего то, и мы начинаем проходить массивы, а их тут наверное нет
ForEveR
В астрале
Эксперт С++
7968 / 4730 / 320
Регистрация: 24.06.2010
Сообщений: 10,539
Завершенные тесты: 3
16.09.2010, 20:26     массив #4
zEg0r, Ну во первых работает... Во вторых это вектор. STL C++
zEg0r
0 / 0 / 0
Регистрация: 26.03.2010
Сообщений: 16
16.09.2010, 20:34  [ТС]     массив #5
Lavroff, наверное я не понимаю(((, а можно как нибудь массив одномерный сделать
ForEveR
В астрале
Эксперт С++
7968 / 4730 / 320
Регистрация: 24.06.2010
Сообщений: 10,539
Завершенные тесты: 3
16.09.2010, 20:36     массив #6
С массивом...

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
#include <iostream>
 
int min(int*Arr, int n)
{
    int min=*Arr;
    int i=0;
    for(i=0; i<n; ++i)
    {
        if(Arr[i]<min)
            min=Arr[i];
    }
    for(i=0; i<n; ++i)
    {
        if(min==Arr[i])
            break;
    }
    return i;
}
 
int main()
{
    int*Arr;
    int n;
    std::cout<<"Enter n: ";
    std::cin>>n;
    Arr=new int[n];
    for(int i=0; i<n; ++i)
        std::cin>>Arr[i];
    int sum=0;
    int t=min(Arr, n);
    for(int i=0; i<t; ++i)
        sum+=Arr[i];
    std::cout<<"Sum= "<< sum <<'\n';
    return 0;
}
zEg0r
0 / 0 / 0
Регистрация: 26.03.2010
Сообщений: 16
16.09.2010, 22:46  [ТС]     массив #7
Lavroff, считает не правильно, все перепробовал. не понятно как работает, если не сложно можешь объяснить где что происходит
ForEveR
В астрале
Эксперт С++
7968 / 4730 / 320
Регистрация: 24.06.2010
Сообщений: 10,539
Завершенные тесты: 3
16.09.2010, 22:50     массив #8
zEg0r, Что это он неправильно считает?
В одномерном массиве, состоящем из n вводимых с клавиатуры целых элементов, вычислить сумму элементов массива, расположенных до минимального элемента.
Задание вы верно сформулировали?

Это он и считает. Во втором коде находит номер максимального элемента и возвращает его соответственно. Затем от 0 до этого номера складываются элементы массива. Пример:
При вводе массива: 5,4,3,2,1 - минимальный элемент имеет номер 4.
Итак. В главной функции вызывается функция и возвращает 4.
Идем по массиву от 0 до 4 (не включая минимального элемента). Складываем элементы находящиеся перед минимальным.
5+4+3+2=14.
Где неправильно? оО
Qwerty_coder
29 / 29 / 2
Регистрация: 14.12.2009
Сообщений: 79
16.09.2010, 22:59     массив #9
zEg0r, надеюсь, что мой код ты сможешь разобрать... Писал как можно проще и доступнее

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
#include <iostream>
#include <locale.h>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "rus");
    int n, *arr, i, min = 0, indmin = 0, sum = 0;
    cout << "Введите размер массива: "; cin >> n;
    arr = new int[n];
    cout << "Введите элементы массива: " << endl;
    for(i = 0; i < n; i++) cin >> arr[i];
    //Поиск минимального
    for(i = 0; i < n; i++)
    {
        if(arr[i] < min)
        {
            min = arr[i];
            indmin = i;
        }
    }
    //Сумма
    for(i = 0; i < indmin; i++) sum += arr[i];
    //Вывод суммы на экран
    cout << "Сумма = " << sum << endl;
    system("pause");
}
zEg0r
0 / 0 / 0
Регистрация: 26.03.2010
Сообщений: 16
16.09.2010, 23:07  [ТС]     массив #10
Lavroff, задание сформулировал верно. но вот ввожу значения и суму почему то выводит не правильно 5 4 3 2 1 2 выводит Sum= 9
а в последнем примере sum всегда =0
ForEveR
В астрале
Эксперт С++
7968 / 4730 / 320
Регистрация: 24.06.2010
Сообщений: 10,539
Завершенные тесты: 3
16.09.2010, 23:14     массив #11
zEg0r, Чтооо?? оО Ща проверю.
5 4 3 2 1 2 - 14 как и должно быть. Код абсолютно верен. Или 5+4+3+2 не равно 14???!
zEg0r
0 / 0 / 0
Регистрация: 26.03.2010
Сообщений: 16
16.09.2010, 23:17  [ТС]     массив #12
Lavroff, спасибо, наверное у меня что то не то
все понял!!!)))
ForEveR
В астрале
Эксперт С++
7968 / 4730 / 320
Регистрация: 24.06.2010
Сообщений: 10,539
Завершенные тесты: 3
16.09.2010, 23:18     массив #13
Секунду. Я то-ли нашел баг... то-ли неприятный глюк...
Нет. Багов нету
easybudda
Эксперт С++
9456 / 5469 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
16.09.2010, 23:19     массив #14
Цитата Сообщение от Lavroff Посмотреть сообщение
zEg0r,

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <vector>
#include <algorithm>
#include <numeric>
 
int main()
{
    int n, elem;
    std::cout<<"Enter n: ";
    std::cin>>n;
    std::vector<int> Vec;
    for(int i=0; i<n; ++i)
    {
         std::cin>>elem;
         Vec.push_back(elem);
    }
    std::vector<int>::iterator It=std::min_element(Vec.begin(), Vec.end());
    std::cout<<"Min= "<<*It<<'\n';
    int sum=std::accumulate(Vec.begin(), It, 0);
    std::cout<<"Sum= "<<sum<<'\n';
    return 0;
}
А не проверяли, если первый элемент он же минимальный - что будет?
ForEveR
В астрале
Эксперт С++
7968 / 4730 / 320
Регистрация: 24.06.2010
Сообщений: 10,539
Завершенные тесты: 3
16.09.2010, 23:21     массив #15
easybudda, Не проверял каюсь) хотелось бы чтобы 0. Но не уверен)
Собственно проверил. 0.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.09.2010, 23:46     массив
Еще ссылки по теме:

Вывести массив а(i, j), одномерный массив b(i) и полученный массив АВ с помощью функции Cells - VBA
Задача 1 Написать программу для решения следующей задачи: для числа n вводимого с клавиатуры (с помощью функции InputBox())...

Массив. Разделить на два: массив элементов с четными и массив с нечетными индексами - Pascal ABC
VII.Одномерные массивы 50. Задан массив с количеством элементов N. Сформировать два массива: в первый включить элементы исходного массива...

Ввести массив А. В массив В перенести все элементы массива А, стоящие правее максимального элемента, и имеющие нечетный индекс. Массив В отсортировать - C++
Добрый Вечер! Написал первую часть программы по этому заданию&quot;Ввести массив А. В массив В перенести все элементы массива А, стоящие правее...

Двумерный массив.Дан массив 5 х 5. Определить сумму элементов тех строк, где диагональный элемент равен нулю и записать их в отдельный массив. - Turbo Pascal
помогите составить программу. во задание:Дан массив 5 х 5. Определить сумму элементов тех строк, где диагональный элемент равен нулю и...

Дан массив С (N). Нечетные элементы поместить в массив A, а четные в массив В - Pascal ABC
Ребят помогите решить задачу на паскале и на бейсике. Дан массив С (N). Нечетные элементы поместить в массив A, а четные в массив...


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

Или воспользуйтесь поиском по форуму:
rangerx
1931 / 1540 / 141
Регистрация: 31.05.2009
Сообщений: 2,908
17.09.2010, 23:46     массив #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
#include <iostream>
 
int main()
{
    std::cout << "Input size: ";
    size_t n;
    std::cin >> n;
 
    int* array = new int[n];
    for(size_t i = 0; i < n; ++i) 
        std::cin >> array[i];
 
    int sum = 0;
    int* first = &array[0];
    int* last = &array[n-1];
 
    while(first != last)
    {
        if(*first > *last) sum+= *first++;
        else --last;
    }
 
    delete[] array;
    std::cout << "sum: " << sum << std::endl;    
    return 0;
}
тест с 5 4 3 2 1 2 пройден, а там уж не знаю...
Yandex
Объявления
17.09.2010, 23:46     массив
Ответ Создать тему
Опции темы

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