Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/47: Рейтинг темы: голосов - 47, средняя оценка - 4.94
1 / 1 / 0
Регистрация: 27.01.2014
Сообщений: 91
1

Вычислить сумму элементов массива, расположенных до последнего положительного элемента

28.12.2014, 15:26. Показов 9320. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В одномерном массиве, состоящем из 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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#include <iostream>
using namespace std;
int n,A,B;
 
void vvodmassiva(int n, int * mas);
void summadomaxpoli(int a,int * mas,int masxpoli);
void pokazat(int n, int * mas);
void szhatie(int n, int * mas, int A, int B);
void maximel(int n, int * mas,int maxpoli);
 
    void main(){
        int *mas = new int[n];
        int  max = mas[0];
        setlocale(LC_ALL,"rus");
        int a=0,b=1,maxpoli,A,B;
        cout<<"Введите размер массива= ";
        cin>>n;
    system("cls");
    vvodmassiva(n,mas);
    system("cls");
    pokazat(n,mas);
    maximel(n,mas,maxpoli);
    cout<<"Максимальный элемент массива= ["<<max<<"]"<<endl;
    summadomaxpoli(a,mas,maxpoli);
    cout<<"Сумма всех элементов массива до последнего положительного = ["<<a<<"]"<<endl;
    cout<<"Введите A = ";cin>>A;
    cout<<"Введите B = ";cin>>B;
    szhatie(n,mas,A,B);
    cout<<"Хотите проверить еще один массив? Введите 1 если да. \r\n";
    cin>>n;
    if(n == 1)
        main();
    
 
        ;}
 
void vvodmassiva(int n, int * mas)             //Ввод массива
{
    cout<<"Введите элементы массива \r\n";
    int b=1;
    for(int i = 0; i < n; i++){
        cout<<"Элемент №"<<b++<<"= "; cin>>mas[i];}
}
 
void maximel(int n,int * mas,int maxpoli){     //Поиск максимального положительного
    int  max = mas[0];
    for (int i = 0; i < n; i++) {            
                  if (mas[i] >= max){
                  max = mas[i];
                  maxpoli=i;
                  }
            }
}
void pokazat(int n, int * mas)                 //Функция вывода массива
{
    for(int i = 0; i < n; i++)
        cout<<"Массив["<<i<<"]"<<mas[i]<<"\r\n";
    cout<<"\r\n";
}
 
void summadomaxpoli(int a,int * mas,int maxpoli){    //Сумма до максимального положительного
    for(int i=0;i<maxpoli;i++){                    
                a +=mas[i];
    }}
 
void szhatie(int n, int * mas, int A, int B)         //Сжатие массива
{
    cout<<"Szhatie massiva\r\n";
    for(int i = 0,j; i < n; i++)
    {
        if (A <= abs(mas[i]) && abs(mas[i])<=B) 
        {
            for(j = i; j < n - 1; j++)
                mas[j] = mas[j + 1];
            mas[j] = 0;
        }
    }
 
}
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.12.2014, 15:26
Ответы с готовыми решениями:

Вычислить сумму элементов массива, расположенных до последнего положительного элемента
В одномерном массиве, состоящем из п вещественных элементов, вычислить: 1) максимальный элемент...

Вычислить сумму нечетных элементов массива, расположенных до последнего положительного элемента
В одномерном массиве, который состоит из n действительных элементов, вычислить сумму нечетных...

Массив: Вычислить сумму элементов массива расположенных до последнего положительного элемента.
В одномерном массиве состоящем из n вещественных элементов вычислить: 1) максимальный элемент...

Массив: Вычислить сумму элементов массива, расположенных до последнего положительного элемента.
Разработать алгоритм и программу по обработке элементов одномерного или двумерного динамического...

8
Модератор
Эксперт С++
 Аватар для zss
13727 / 10923 / 6480
Регистрация: 18.12.2011
Сообщений: 29,157
28.12.2014, 16:42 2
Передайте maxpoli по ссылке
C++
1
int maximel(int n, int * mas,int &maxpoli);
C++
1
2
3
4
5
6
7
8
9
10
int maximel(int n,int * mas,int &maxpoli)
{     //Поиск максимального положительного
    maxpoli = 0;
    for (int i = 0; i < n; i++) 
   {            
        if (mas[i] >= mas[maxpoli])
                  maxpoli=i;
    }
    return maxpoli;// можете использовать возвращаемое значение
}
1
1 / 1 / 0
Регистрация: 27.01.2014
Сообщений: 91
28.12.2014, 20:24  [ТС] 3
спасибо, но напишите пожалуйста код полностью я новичок и после изменений у меня выдает ошибку
0
Модератор
Эксперт С++
 Аватар для zss
13727 / 10923 / 6480
Регистрация: 18.12.2011
Сообщений: 29,157
28.12.2014, 20:40 4
приведите код, который получился.
Вы должны были заменить 9 строчку и с 45 по 53
1
1 / 1 / 0
Регистрация: 27.01.2014
Сообщений: 91
28.12.2014, 21:49  [ТС] 5
спасибо, теперь работает, но каждый раз при запуске программы максимальное число = -33686019, а сумма = 0
что можно сделать, потому что я не знаю где ошибка?
вот код:
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
77
78
79
80
#include <iostream>
using namespace std;
int n,A,B;
 
void vvodmassiva(int n, int * mas);
void summadomaxpoli(int a,int * mas,int masxpoli);
void pokazat(int n, int * mas);
void szhatie(int n, int * mas, int A, int B);
int maximel(int n, int * mas,int &maxpoli);
 
    void main(){
        int *mas = new int[n];
        int  max = mas[0];
        setlocale(LC_ALL,"rus");
        int a=0,b=1,maxpoli,A,B;
        cout<<"Введите размер массива= ";
        cin>>n;
    system("cls");
    vvodmassiva(n,mas);
    system("cls");
    pokazat(n,mas);
    maximel(n,mas,maxpoli);
    cout<<"Максимальный элемент массива= ["<<max<<"]"<<endl;
    summadomaxpoli(a,mas,maxpoli);
    cout<<"Сумма всех элементов массива до последнего положительного = ["<<a<<"]"<<endl;
    cout<<"Введите A = ";cin>>A;
    cout<<"Введите B = ";cin>>B;
    szhatie(n,mas,A,B);
    cout<<"Хотите проверить еще один массив? Введите 1 если да. \r\n";
    cin>>n;
    if(n == 1)
        main();
    
 
        ;}
 
void vvodmassiva(int n, int * mas)             //Ввод массива
{
    cout<<"Введите элементы массива \r\n";
    int b=1;
    for(int i = 0; i < n; i++){
        cout<<"Элемент №"<<b++<<"= "; cin>>mas[i];}
}
 
int maximel(int n,int * mas,int &maxpoli){     //Поиск максимального положительного
    int  max = mas[0];
    for (int i = 0; i < n; i++) {            
                  if (mas[i] >= max){
                  max = mas[i];
                  maxpoli=i;
                  }
                  return maxpoli;
            }
}
void pokazat(int n, int * mas)                 //Функция вывода массива
{
    for(int i = 0; i < n; i++)
        cout<<"Массив["<<i<<"]"<<mas[i]<<"\r\n";
    cout<<"\r\n";
}
 
void summadomaxpoli(int a,int * mas,int maxpoli){    //Сумма до максимального положительного
    for(int i=0;i<maxpoli;i++){                    
                a +=mas[i];
    }}
 
void szhatie(int n, int * mas, int A, int B)         //Сжатие массива
{
    cout<<"Szhatie massiva\r\n";
    for(int i = 0,j; i < n; i++)
    {
        if (A <= abs(mas[i]) && abs(mas[i])<=B) 
        {
            for(j = i; j < n - 1; j++)
                mas[j] = mas[j + 1];
            mas[j] = 0;
        }
    }
 
}
0
Модератор
Эксперт С++
 Аватар для zss
13727 / 10923 / 6480
Регистрация: 18.12.2011
Сообщений: 29,157
28.12.2014, 22:31 6
Лучший ответ Сообщение было отмечено Vovanich13 как решение

Решение

Ошибок немерено.
Привожу исправленный код
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
77
78
79
80
81
82
83
84
85
86
87
88
89
#include <iostream>
#include <conio.h>
using namespace std;
 
void vvodmassiva(int n, int * mas);
int summadomaxpoli(int * mas,int masxpoli);
void pokazat(int n, int * mas);
void szhatie(int &n, int * mas, int A, int B);
int maximel(int n, int * mas);
 
int main()
{
    setlocale(LC_ALL,"rus");
    int c;
   do
   {
      cout<<"Введите размер массива= ";
      int n;cin>>n;
      int *mas = new int[n];
      system("cls");
      vvodmassiva(n,mas);
      system("cls");
      pokazat(n,mas);
      int max=maximel(n,mas);
      cout<<"Максимальный элемент массива="<<max<<endl;
      int a=summadomaxpoli(mas,max);
      cout<<"Сумма всех элементов массива до максимального = "<<a<<endl;
      cout<<"Введите A = ";
      int A;cin>>A;
      cout<<"Введите B = ";
      int B;cin>>B;
      szhatie(n,mas,A,B);
      pokazat(n,mas);
      cout<<"Хотите проверить еще один массив? Введите y если да. \r\n";
      c=getch();
      delete[] mas;
   }while(c=='y');
}
 
void vvodmassiva(int n, int * mas)             //Ввод массива
{
    cout<<"Введите элементы массива \r\n";
    int b=1;
    for(int i = 0; i < n; i++){
        cout<<"Элемент №"<<b++<<"= "; cin>>mas[i];}
}
 
int maximel(int n,int * mas)
{     //Поиск максимального положительного
    int maxpoli;maxpoli = 0;
    for (int i = 0; i < n; i++) 
    {            
        if (mas[i] >= mas[maxpoli])
                  maxpoli=i;
    }
    return maxpoli;// можете использовать возвращаемое значение
}
void pokazat(int n, int * mas)                 //Функция вывода массива
{
    for(int i = 0; i < n; i++)
        cout<<"Массив["<<i<<"]"<<mas[i]<<"\r\n";
    cout<<"\r\n";
}
 
int summadomaxpoli(int * mas,int maxpoli)
{    //Сумма до максимального положительного
    int a=0;
    for(int i=0;i<maxpoli;i++)
    {              
       a +=mas[i];
    }
    return a;
}
 
void szhatie(int &n, int * mas, int A, int B)         //Сжатие массива
{
    cout<<"Szhatie massiva\r\n";
    for(int i = 0; i < n; i++)
    {
        if (A <= abs(mas[i]) && abs(mas[i])<=B) 
        {
            for(int j = i; j < n - 1; j++)
                mas[j] = mas[j + 1];
            i--;
            n--;
        }
    }
 
}
1
1 / 1 / 0
Регистрация: 27.01.2014
Сообщений: 91
29.12.2014, 13:50  [ТС] 7
большое спасибо!!!!!!
0
 Аватар для Гуфик
0 / 0 / 0
Регистрация: 19.02.2018
Сообщений: 1
25.06.2018, 21:39 8
что означает эта сторочка?
C++
1
cout<<"Элемент №"<<b++<<"= "; cin>>mas[i];}
0
Модератор
Эксперт С++
 Аватар для zss
13727 / 10923 / 6480
Регистрация: 18.12.2011
Сообщений: 29,157
30.06.2018, 15:05 9
Цитата Сообщение от Гуфик Посмотреть сообщение
что означает эта сторочка?
C++
1
2
3
4
5
for(int i = 0; i < n; i++)
{
        cout<<"Элемент №"<<b++<<"= "; // выводим запрос на ввод очередного элемента массива 
       cin>>mas[i];  // вводим этот элемент
}
0
30.06.2018, 15:05
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.06.2018, 15:05
Помогаю со студенческими работами здесь

Вычислить сумму элементов массива, расположенных до последнего положительного элемента включительно
Написать программу работы с одномерным массивом из 15 вещественных элементов для решения задач: ...

В одномерном массиве вычислить сумму элементов массива, расположенных до последнего положительного элемента
В одномерном массиве, состоящем из 10 вещественных элементов, вычислить:Сумму элементов массива,...

В одномерном массиве вычислить: максимальный элемент массива и сумму элементов массива, расположенных до последнего положительного элемента
Не могу найти ошибку В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1....

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


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Элементы алгоритмизации
hw_wired 28.01.2025
Основы алгоритмизации В современном мире алгоритмы играют фундаментальную роль в развитии информационных технологий и программирования. Понимание основ алгоритмизации является ключевым элементом в. . .
Человек и информация
hw_wired 28.01.2025
Введение: роль информации в познании мира В современном мире информация играет фундаментальную роль в процессе познания окружающей действительности. Она представляет собой совокупность сведений об. . .
Компьютер и информация
hw_wired 28.01.2025
Эволюция вычислительных машин История развития вычислительной техники начинается задолго до появления первых электронных устройств. Человечество всегда стремилось упростить процесс вычислений и. . .
Информационные технологии
hw_wired 28.01.2025
Введение в современные технологии работы с информацией В современном мире информационные технологии стали неотъемлемой частью практически всех сфер человеческой деятельности. Они существенно. . .
Информация вокруг нас
hw_wired 28.01.2025
Основные понятия информации В современном мире понятие информации является фундаментальным и охватывает практически все сферы человеческой деятельности. Информация представляет собой совокупность. . .
Компьютер для начинающих
hw_wired 28.01.2025
Введение в мир компьютерных технологий В современном мире информация стала одним из важнейших ресурсов человечества, определяющим развитие общества и технологий. Наша жизнь неразрывно связана с. . .
[golang] 189. Rotate Array
alhaos 28.01.2025
Повороты рукоятки, целочисленный слайс нужно сдвинуть на целое положительное число. Мне очень нравится решение на GO / / https:/ / leetcode. com/ studyplan/ top-interview-150/ package topInterview . . .
КуМир: решение задач на матрицы
bytestream 28.01.2025
КуМир представляет собой среду для обучения программированию, которая включает в себя мощные инструменты для работы с матрицами. Матрица в программировании - это двумерный массив, состоящий из. . .
КуМир: решение задач на строки
bytestream 28.01.2025
В системе программирования КуМир работа со строковыми данными является одним из важнейших аспектов создания программ. Строки представляют собой последовательности символов, заключенные в кавычки,. . .
КуМир: решение геометрических задач
bytestream 28.01.2025
Программирование геометрических задач в среде КуМир становится всё более актуальным в обучении школьников и студентов. КуМир — это разработанная в России обучающая программная среда, предназначенная. . .
КуМир, исполнитель Водолей: Задачи и решения
bytestream 28.01.2025
КуМир — это образовательная среда для обучения программированию. Она предлагает пользователям разнообразные инструменты для разработки и отладки программ, что особенно ценно для студентов и. . .
КуМир, исполнитель Чертежник: Решение задач
bytestream 28.01.2025
КуМир (Комплект Учебных МИРов) представляет собой образовательную среду для обучения основам программирования и алгоритмизации. Исполнитель Чертежник работает на координатной плоскости, где может. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru