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

Массивы. Вычислить максимальный элемент массива, сумму элементов, сжать массив - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.67
Вадим3777
0 / 0 / 0
Регистрация: 05.01.2012
Сообщений: 53
07.03.2013, 12:23     Массивы. Вычислить максимальный элемент массива, сумму элементов, сжать массив #1
При написании программ использовать динамические массивы. Размерность
массивов задаётся именованной константой.

Задача 1.В одномерном массиве, состоящем из n вещественных элементов, вычислить:
1) максимальный элемент массива;
2) сумму элементов массива, расположенных до последнего положительного элемента.
Сжать массив, удалив из него все элементы, модуль которых находится в интервале [a,b].
Освободившиеся в конце массива элементы заполнить нулями и распечатать их адреса.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.03.2013, 12:23     Массивы. Вычислить максимальный элемент массива, сумму элементов, сжать массив
Посмотрите здесь:

В одномерном массиве, состоящем из n вещественных элементов вычислить минимальный элемент массива и сумму элементов массива. [CPP] C++
C++ Одномерные числовые массивы (найти максимальный элемент, сумму элементов, преобразовать)
Массивы. Вычислить минимальный элемент массива, сумму элементов массива, преобразовать массив C++
Дан массив целых чисел. Найти В этом массиве минимальный элемент т и максимальный элемент м. Вывести сумму элементов от минимального до максимального C++
C++ Матрица динамическая. 1. максимальный элемент массива; 2. сумму элементов массива, расположенных до последнего положительного элемента
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Вадим3777
0 / 0 / 0
Регистрация: 05.01.2012
Сообщений: 53
07.03.2013, 17:09  [ТС]     Массивы. Вычислить максимальный элемент массива, сумму элементов, сжать массив #2
В одномерном массиве, состоящем из n вещественных элементов, вычислить:
1) максимальный элемент массива;
2) сумму элементов массива, расположенных до последнего положительного элемента.
Сжать массив, удалив из него все элементы, модуль которых находится в интервале [a,b].
Освободившиеся в конце массива элементы заполнить нулями и распечатать их адреса.


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
#include <iostream>
#include <cmath>
#include "stdafx.h"
#include <string>
#include <algorithm>
#include <iterator>
using namespace std;
 int main()
{
    setlocale(LC_ALL, "Russian");
 double  max;
 int n;   
 cout<<"vvedite razmer massiva ";
cin>>n;
 int *arr = new int[n];
             for (int i=0; i<n; i++)
        cin >> arr[i];
    
    max = arr[0];
    for (int i=1; i<n; i++)
        if (abs(arr[i]) > abs(max))
            max = arr[i];
     cout << "максимальный по модулю равен " << max << endl;
 int i     = 0;
        int sum   = 0;
   while (arr[i] <= 0)
    ++i;
 
  ++i;
 
  while (arr[i] <= 0) {
    sum += arr[i];
    ++i;
  }
   std::cout << "Sum: " << sum << std::endl;
   
   int j; 
 
    for ( i = 0; i < n; ++i) 
        if(arr[i] == 0) 
        { 
            for ( j = i; j < n - 1; ++j) 
                arr[j] = arr[j+1]; 
            arr[n - 1] = 0; 
        } 
         for ( i = 0; i < n; ++i) 
           cout << arr[i] << " "; 
        cout << endl;
   system("pause");
    return 0;               
}
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    return 0;
}
 Комментарий модератора 
Используйте теги подсветки кода!
Кудаив
328 / 405 / 24
Регистрация: 27.05.2012
Сообщений: 1,162
Завершенные тесты: 2
07.03.2013, 17:28     Массивы. Вычислить максимальный элемент массива, сумму элементов, сжать массив #3
C++
1
2
3
4
5
6
7
8
9
int i = 0;
int sum = 0;
while (arr[i] <= 0)//зачем
++i;//это 
++i;//тут?
 
while (arr[i] <= 0) {
sum += arr[i];
++i;
получается в помеченных мною строках ты догнал i до первого положительного, потом увеличил на два, потом с этой позиции начинаешь суммировать
Afflicted
Обитатель форума
199 / 182 / 8
Регистрация: 28.10.2012
Сообщений: 538
07.03.2013, 17:29     Массивы. Вычислить максимальный элемент массива, сумму элементов, сжать массив #4
Боже... это что?
если пропустить кучу ненужных библиотек (для этой программы), две входные ф-ции (main и _tmain), то это что???


Цитата Сообщение от Вадим3777 Посмотреть сообщение
C++
1
2
3
4
5
6
7
    while (arr[i] <= 0)
    ++i;
    ++i;
    while (arr[i] <= 0)
    {
        sum += arr[i];
        ++i;
}

и это?
Цитата Сообщение от Вадим3777 Посмотреть сообщение
C++
1
2
3
4
5
6
7
    for ( i = 0; i < n; ++i) 
    if(arr[i] == 0) 
    { 
        for ( j = i; j < n - 1; ++j) 
            arr[j] = arr[j+1]; 
        arr[n - 1] = 0; 
    }

Не по теме:

и где тэги для кода? Вы усложняете чтение, а, соответственно, и возможность того, что кто-то будет разбираться и помогать вам.

Ev[G]eN
Эксперт С++
 Аватар для Ev[G]eN
5093 / 1531 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
07.03.2013, 18:14     Массивы. Вычислить максимальный элемент массива, сумму элементов, сжать массив #5
Цитата Сообщение от Вадим3777 Посмотреть сообщение
В одномерном массиве, состоящем из n вещественных элементов, вычислить:
1) максимальный элемент массива;
2) сумму элементов массива, расположенных до последнего положительного элемента.
Сжать массив, удалив из него все элементы, модуль которых находится в интервале [a,b].
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
#include <algorithm>
#include <iterator>
#include <iostream>
#include <numeric>
#include <random>
#include <vector>
 
int main ()
{
    std::default_random_engine gen;
    std::uniform_int_distribution <> distr(-15, 15);
 
    int vectorSize;
    std::cout << "Enter the size: ";
    std::cin >> vectorSize;
 
    std::vector <int> vector (vectorSize);
    std::cout << "Vector: " << std::endl;
    std::generate(vector.begin(), vector.end(), [&gen, &distr] () -> int {
        return distr(gen);
    });
    std::copy(vector.begin(), vector.end(), std::ostream_iterator <int> (std::cout, " "));
    std::cout << std::endl << "Maximal: " << *std::max_element(vector.begin(), vector.end()) << std::endl;
 
    int lastPositive;
    for (unsigned i = 0; i < vector.size(); i++)
        lastPositive = vector.at(i) > 0 ? i : lastPositive;
    std::cout << "Sum before the last positive: " << std::accumulate(vector.begin(), vector.begin() + lastPositive, 0) << std::endl;
 
    int fLimit;
    std::cout << std::endl << "Enter the first limit: ";
    std::cin >> fLimit;
    int sLimit;
    std::cout << "Enter the second limit: ";
    std::cin >> sLimit;
    system("cls");
 
    std::cout << "Vector: " << std::endl;
    for (unsigned i = 0; i < vector.size(); i++)
        if (fLimit <= abs(vector.at(i)) && sLimit >= abs(vector.at(i)))
            vector.erase(vector.begin() + (i--));
    std::copy(vector.begin(), vector.end(), std::ostream_iterator <int> (std::cout, " "));
 
    return 0;
}
egor2116
 Аватар для egor2116
337 / 368 / 42
Регистрация: 20.01.2013
Сообщений: 1,100
07.03.2013, 18:18     Массивы. Вычислить максимальный элемент массива, сумму элементов, сжать массив #6
Ev[G]eN человек проходит тему массивы, как вы думаете, код который вы показали соответствует теме работы с массивами или он не зает массивов но разбирается в STL и препод ничего не заподозрит.
MrCold
851 / 749 / 71
Регистрация: 11.01.2012
Сообщений: 1,942
07.03.2013, 18:21     Массивы. Вычислить максимальный элемент массива, сумму элементов, сжать массив #7
egor2116, сообщения Ev[G]eN могут быть полезны другим посетителям форума
Ev[G]eN
Эксперт С++
 Аватар для Ev[G]eN
5093 / 1531 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
07.03.2013, 18:22     Массивы. Вычислить максимальный элемент массива, сумму элементов, сжать массив #8
egor2116, тебе что-то мешает выложить код без STL?
ну и если ты будешь немного внимательней, то увидишь в его коде

Цитата Сообщение от Вадим3777 Посмотреть сообщение
C++
1
2
#include <algorithm>
#include <iterator>
не знаю, конечно, к чему оно там, но я вот увидел эти библиотеки и подумал, что человек осведомлен...

Добавлено через 39 секунд
Цитата Сообщение от egor2116 Посмотреть сообщение
код который вы показали соответствует теме работы с массивами
я вижу тут тему "что здесь не так"...
vyachesmine
7 / 7 / 1
Регистрация: 19.02.2013
Сообщений: 22
07.03.2013, 19:39     Массивы. Вычислить максимальный элемент массива, сумму элементов, сжать массив #9
Не совсем изящно, но вот
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
#include <iostream.h>
#include <locale.h>
#include <math.h>
int main()
{
    setlocale(0, ".1251");
    int i,j,k,n,max,a,b;
    int sum=0;
    cout << "Ââåäèòå Г°Г*çìåðГ*îñòü Г¬Г*Г±Г±ГЁГўГ*:";
    cin >> n;
    int array[n];
    cout << "\nÂâåäèòå ýëåìåГ*ГІГ» Г¬Г*Г±Г±ГЁГўГ*:";
    for (i=0; i<n; i++) cin >> array[i];
    max = array[0];
    for (i=0; i<n; i++)
    {
        if (array[i] > 0) j = i;
        if (max < array[i])
        {
            max = array[i];
            k = i+1;
        }
    }
    cout << "\nГЊГ*ГЄГ±ГЁГ¬Г*ëüГ*ûé ýëåìåГ*ГІ - " << k << "-Г© = " << max << "\n";
    for (i=0; i<j; i++) sum = sum + array[i];
    cout << "\nÑóììГ* äî ïîñëåäГ*ГҐГЈГ® + ýëåìåГ*ГІГ* = " << sum << "\n";
    cout << "Ââåäèòå ГЈГ°Г*Г*èöû ГЁГ*òåðâГ*Г«Г*:";
    cin >> a >> b;
    cout << "\nÏðåîáðГ*çîâГ*Г*Г*ûé Г¬Г*Г±Г±ГЁГў:\n";
    i = 0;
    while (i != (n-1))
    {
        if ( (fabs(array[i]) >= a) && (fabs(array[i]) <= b) )
        {
           for (j=i; j<n; j++) array[j] = array [j+1];
           array[n-1] = i = 0;  
        }
        else i++;
        
    } 
        for (i=0; i<n; i++) cout << "\t" << array[i];
        cout << "\n";
    system("pause");
    return 0;
}
Добавлено через 3 минуты
годится?
Вадим3777
0 / 0 / 0
Регистрация: 05.01.2012
Сообщений: 53
07.03.2013, 19:41  [ТС]     Массивы. Вычислить максимальный элемент массива, сумму элементов, сжать массив #10
спасибо.
yoghurt92
373 / 344 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
07.03.2013, 19:44     Массивы. Вычислить максимальный элемент массива, сумму элементов, сжать массив #11
Вадим3777,

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
// впавп.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
#include <iostream>
#include <math.h>
using namespace std;
 
void main(void)
{
    int const N = 5;
    int mas[N];
 
    cout << "Enter massiv:\n";
    for(int i = 0; i < N; i++)
    {
        cout << "Enter the array element[" << i+1 << "]:";
            cin >> mas[i];
    }
 
    cout << "\n";
 
    int maxi;
    int max = mas[0];
 
    for(int i = 0; i < N; i++)
    {
        if(mas[i] > max)
        {
            max = mas[i];
            maxi = i;
        }
    }
 
    cout << "The maximum element of the array: " << max;
    cout << "\nPosition of the maximum element of the array: " << maxi << "\n\n";
                        
    int j = N - 1;
    for(int i = 0; i < N; i++) 
    {
        if(mas[i] >= 0)
        {
            j = i - 1;
        }
    }
 
    int sum = 0;
    for(int i = 0; i <= j; i++)
        sum += mas[i];
                
    cout << "Sum of the elements: " << sum << "\n\n";
 
    int a = 2;
    int b = 5;
 
    for(int i = 0; i < N; ++i)
    {
        if(abs(mas[i]) > a && abs(mas[i]) < b)
        {
            for(int j = i; j < N - 1; ++j) 
            {
                mas[j] = mas[j + 1];
            }
 
            mas[N - 1] = 0; 
            --i;
        }
    }
    
    
    for(int i = 0; i < N; i++)
        cout << mas[i] << " " << endl;
 
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.03.2013, 19:25     Массивы. Вычислить максимальный элемент массива, сумму элементов, сжать массив
Еще ссылки по теме:

В одномерном массиве вычислить: максимальный элемент массива и сумму элементов массива, расположенных до последнего положительного элемента C++
C++ Найти сумму тех элементов массива, цифровая запись которых дает четную сумму цифр, а также найти максимальный элемент массива
C++ Вычислить максимальный элемент массива до первого нулевого и сумму элементов до последнего положительного.

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

Или воспользуйтесь поиском по форуму:
Вадим3777
0 / 0 / 0
Регистрация: 05.01.2012
Сообщений: 53
10.03.2013, 19:25  [ТС]     Массивы. Вычислить максимальный элемент массива, сумму элементов, сжать массив #12
В одномерном массиве, состоящем из n вещественных элементов, вычислить:
1) максимальный элемент массива;
2) сумму элементов массива, расположенных до последнего положительного элемента.
Сжать массив, удалив из него все элементы, модуль которых находится в интервале [a,b].
Освободившиеся в конце массива элементы заполнить нулями и распечатать их адреса.
Yandex
Объявления
10.03.2013, 19:25     Массивы. Вычислить максимальный элемент массива, сумму элементов, сжать массив
Ответ Создать тему
Опции темы

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