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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 8, средняя оценка - 4.88
Warezovvv
9 / 9 / 2
Регистрация: 09.12.2012
Сообщений: 219
#1

В одномерном массиве вычислить: максимальный элемент массива и сумму элементов массива, расположенных до последнего положительного элемента - C++

23.05.2013, 18:31. Просмотров 1084. Ответов 3
Метки нет (Все метки)

Не могу найти ошибку
В одномерном массиве, состоящем из n вещественных элементов, вычислить:
1. максимальный элемент массива;
2. сумму элементов массива, расположенных до последнего положительного элемента.
Сжать массив, удалив из него все элементы, модуль которых находится в интервале [𝑎,𝑏]. Освободившиеся в конце массива элементы заполнить нулями.

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);
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;
        }
    }
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.05.2013, 18:31     В одномерном массиве вычислить: максимальный элемент массива и сумму элементов массива, расположенных до последнего положительного элемента
Посмотрите здесь:
C++ Матрица динамическая. 1. максимальный элемент массива; 2. сумму элементов массива, расположенных до последнего положительного элемента
C++ В одномерном массиве вычислить номер максимального элемента массива и сумму элементов массива, расположенных после первого положительного
C++ Найти в одномерном массиве сумму элементов массива, расположенных до последнего положительного
C++ В одномерном массиве, состоящем из 30 целых элементов, вычислить сумму элементов массива, расположенных после последнего элемента, равного нулю.
Вычислить сумму элементов массива, расположенных до последнего положительного элемента C++
C++ Вычислить сумму элементов массива, расположенных до последнего положительного элемента
Массив: Вычислить сумму элементов массива расположенных до последнего положительного элемента. C++
C++ Массив: Вычислить сумму элементов массива, расположенных до последнего положительного элемента.
C++ Вычислить максимальный элемент массива до первого нулевого и сумму элементов до последнего положительного.
Найти сумму элементов массива, расположенных до последнего положительного элемента C++
C++ Найти сумму элементов массива, расположенных до последнего положительного элемента
Найти сумму элементов массива, расположенных до последнего положительного элемента C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
23.05.2013, 21:53     В одномерном массиве вычислить: максимальный элемент массива и сумму элементов массива, расположенных до последнего положительного элемента #2
Сначала это?
C++
1
int *mas = new int[n];
а потом это?
C++
1
 cin>>n;
Warezovvv
9 / 9 / 2
Регистрация: 09.12.2012
Сообщений: 219
23.05.2013, 22:06  [ТС]     В одномерном массиве вычислить: максимальный элемент массива и сумму элементов массива, расположенных до последнего положительного элемента #3
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);
void maximel(int n, int * mas,int& maxpoli);
 
    void main(){
        setlocale(LC_ALL,"rus");
        int a=0,b=1,maxpoli,A,B;
        cout<<"Введите размер массива= ";
        cin>>n;
        int *mas = new int[n];
        int  max = mas[0];
    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;
        }
    }
 
}
пускай так. Все равно не так.
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
23.05.2013, 22:49     В одномерном массиве вычислить: максимальный элемент массива и сумму элементов массива, расположенных до последнего положительного элемента #4
Цитата Сообщение от Warezovvv Посмотреть сообщение
Все равно не так.
Не так. Из функции поиска максимального элемента нужно или вернуть найденное значение, или передать туда по ссылке переменную max. Нет функции поиска последнего положительного элемента (в задании не сказано, что максимального положительного).
Yandex
Объявления
23.05.2013, 22:49     В одномерном массиве вычислить: максимальный элемент массива и сумму элементов массива, расположенных до последнего положительного элемента
Ответ Создать тему
Опции темы

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