С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

Обработка одномерных массивов. Сортировка массивов - C++

27.12.2013, 19:51. Просмотров 677. Ответов 8
Метки нет (Все метки)

Здравствуйте, помогите пожалуйста решить задачу легким способом.
В одномерном массиве, состоящем из n вещественных элементов, вычислить:
1) сумму отрицательных элементов массива;
2) произведение элементов массива, расположенных между максимальным и минимальным элементами. Упорядочить элементы массива по возрастанию.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.12.2013, 19:51
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Обработка одномерных массивов. Сортировка массивов (C++):

Обработка одномерных массивов. Сортировка массивов - C++
Здравствуйсте! Помогите пожалуйста написать программу! В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1)...

Обработка одномерных массивов - C++
При заданных XT,YT, абциссах X1,X2,..,Xn и ординатах Y1,Y2,..,Yn n точек плоскости XOY определить,в каком числе случаев расстояние...

Обработка одномерных массивов - C++

Обработка одномерных массивов С++ - C++
Написать программу решения задачи, используя оператор цикла FOR. Значения элементов массива ввести с клавиатуры или задать с помощью...

Обработка одномерных массивов С++ - C++
Написать программу решения задачи, используя оператор цикла FOR. Значения элементов массива ввести с клавиатуры или задать с помощью...

Обработка одномерных массивов - C++
1. a) Одномерный массив из 5 элементов целого типа в диапазоне ; b) Дополнить исходный массив, начиная с третьего номера, пятью...

8
DirectX
23 / 17 / 6
Регистрация: 07.10.2013
Сообщений: 47
27.12.2013, 20:13 #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
#include <iostream>
using namespace std;
 
int main()
{
    const int N = 50;
    int n;
    cin >> n;
    
    double masiv[N] = {0}, sum = 0;
    for (int i = 0; i < n; i++)
        cin >> masiv[i];
        
    for (int i = 0; i < n; i++)
    {
        if (masiv[i] < 0)
            sum += masiv[i];
    }
    
    cout << "suma otritsatelnix elementov = " << sum << endl;
 
    system("pause");
    return 0;
}
1
XRoy
853 / 703 / 217
Регистрация: 15.04.2013
Сообщений: 2,047
Записей в блоге: 5
27.12.2013, 20:25 #3
S1NetT, 2)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int multiply(int const *arr, int const &size)
{
    int min, max, i, mult;
    min = max = 0;
 
    for ( i = 1; i < size; ++i )
    {
        if (arr[min] > arr[i]) min = i;
        if (arr[max] < arr[i]) max = i;
    }
 
    mult = 1;
    for ( i = min+1; i < max; ++i )
    {
        mult *= arr[i];
    }
 
    return mult;
}
1
MicM
822 / 480 / 90
Регистрация: 29.12.2009
Сообщений: 1,097
Завершенные тесты: 1
27.12.2013, 20:30 #4
Цитата Сообщение от S1NetT Посмотреть сообщение
Упорядочить элементы массива по возрастанию
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int tmp;
bool f;
do
{
    f = true;
    for (int i=0; i<n-1; i++)
    if (a[i+1]<a[i])
    {
        tmp = a[i+1];
        a[i+1] = a[i];
        a[i] = tmp;
        f = false;
    }
}
while (!f);
1
DirectX
23 / 17 / 6
Регистрация: 07.10.2013
Сообщений: 47
27.12.2013, 20:33 #5
кину еще и свой вариант решения 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
#include <iostream>
#include <cfloat>
using namespace std;
 
int main()
{
    const int N = 50;
    int n, index_min, index_max;
    cin >> n;
    
    float masiv[N] = {0}, product = 1, max = FLT_MIN, min = FLT_MAX;
    for (int i = 1; i <= n; i++)
        cin >> masiv[i];
        
    for (int i = 1; i <= n; i++)
    {
        if (masiv[i] < min)
        {
            min = masiv[i];
            index_min = i;
        }
        if (masiv[i] > max)
        {
            max = masiv[i];
            index_max = i;
        }
    }
    
    int temp;
    if (index_min > index_max) 
    {
        temp = index_max; 
        index_max = index_min;
        index_min = temp;
    }
    
    for (int i = index_min; i <= index_max; i++)
    {
        product *= masiv[i];
    }
    
    cout << "proizvedenie elementov = " << product << endl;
 
    system("pause");
    return 0;
}
0
S1NetT
0 / 0 / 0
Регистрация: 21.12.2013
Сообщений: 23
27.12.2013, 20:35  [ТС] #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
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
#include <iostream>
#include <conio.h>
#include <stdio.h>
#include <math.h>
using namespace std;
int main()
{
 setlocale(LC_ALL,"Russian");
int S,max,min,t,c,d,w,g,i,j,z,mini,maxi;
double pr=1;
 S=0;
 const int n=10;
 int  A[n]; 
 for (t=0; t<n;t++)
 {
 printf("Введите  %d-й элемент массива: ", t+1);
 scanf ("%d", &A[t]);
 }
  for (c=0; c>n; c++)
 {
 if (A[c]>0)
    {
     S=S+A[c];
    }
 }
//нахождение минимального  элемента массива
 min=A[0];
for (d=0; d<n; d++)
{
if (A[d]<min)
{
min=A[d];
mini=d;
}
}
//нахождение максимального  элемента массива
max=A[0];
for (w=0; w<n; w++)
{
if (A[w]>=max)
{
max=A[w];
maxi=w;
}
 }
 //нахождение произведения элементов, раположенных между максимальным и минимальным элементами
 for(g=mini; g=maxi; g++)
 {
     pr=pr*A[g];
 }
 //расположение элементов массива по возрастанию
 for (i=0; i<n; i++)
 for (j=0; j<n-1; j++)
 {
  if (A[j]<A[j-1])
    {
      z=A[j];
      A[j]=A[j-1];
      A[j-1]=z;
    }
 }
  cout<<"\nОтсортированный массив ";
  for (i=0; i<n; i++)
      cout<<"\nA["<<i<<"]="<<A[i];
 printf ("\n\nСумма отрицательных элементов массива = %d",S);
 cout<<"\n\nПроизведение элементов между мин."<<min<<" и макс. "<<max<<"  элементами = "<<pr;
 _getch ();
 return 0;
}
0
DirectX
23 / 17 / 6
Регистрация: 07.10.2013
Сообщений: 47
27.12.2013, 20:39 #7
S1NetT, учти тот факт что макс елемент может встретиться в масиве раньше чем мин
0
XRoy
853 / 703 / 217
Регистрация: 15.04.2013
Сообщений: 2,047
Записей в блоге: 5
27.12.2013, 21:03 #8
Цитата Сообщение от DirectX Посмотреть сообщение
кину еще и свой вариант решения 2 задачи(без сортировки)
C++
1
2
3
4
5
    for (int i = 1; i <= n; i++)
    ... 
    for (int i = index_min; i <= index_max; i++)
 
}
Элементы массива идут от 0 до n-1. И по условию "расположенных между максимальным и минимальным элементами", а у Вас максимальный и минимальный тоже входят в произведение.
0
Donet
21 / 21 / 2
Регистрация: 19.11.2013
Сообщений: 74
27.12.2013, 21:11 #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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include <iostream>
#include <conio.h>
#include <stdio.h>
using namespace std;
int main(){
    setlocale(LC_ALL,"Russian");
    int S=0,max,min,mini,maxi,x=0;
    int pr=1;
    const int n=5;
    int  A[n]; 
    for (int i=0; i<n; i++){
        printf("Введите  %d-й элемент массива: ", i+1);
        scanf ("%d", &A[i]);
    }
    for (int i=0; i<n; i++){
        if (A[i]<0){
            S=S+A[i];
        }
    }
    //нахождение минимального  элемента массива
    min=A[0];
    for (int i=0; i<n; i++){
        if (A[i]<=min){
            min=A[i];
            mini=i;
        }
    }
    //нахождение максимального  элемента массива
    max=A[0];
    for (int i=0; i<n; i++){
        if (A[i]>=max){
            max=A[i];
            maxi=i;
        }
    }
    //нахождение произведения элементов, раположенных между максимальным по модулю и минимальным элементами
    if(mini < maxi){
        for(int i=mini; i<=maxi; i++){
            pr=pr*A[i];
        }
    }else{
        for(int i=maxi; i<=mini; i++){
            pr=pr*A[i];
        }
    }
    //расположение элементов массива по возрастанию
    for (int i=0; i<n-1; i++)
        for (int j=0; j<n-1-i; j++)
            if (A[j]>A[j+1]){
                swap (A[j],A[j+1]);
            }
    cout<<"\nОтсортированный массив ";
    for (int i=0; i<n; i++)
        cout<<"\nA["<<i<<"]="<<A[i];
    printf ("\n\nСумма отрицательных элементов массива = %d",S);
    cout<<"\n\nПроизведение элементов между мин."<<min<<" и макс. "<<max<<"  элементами = "<<pr;
    _getch ();
    return 0;
}
Добавлено через 1 минуту
Этот код я уже полностью исправил...
1
27.12.2013, 21:11
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.12.2013, 21:11
Привет! Вот еще темы с ответами:

Обработка одномерных динамических массивов - C++
Помогите написать программу (Динамические массивы) Написать программу, которая создает динамический массив ar на N элементов, заполняет...

Обработка одномерных динамических массивов - C++
Помогите написать программу (Динамические массивы) Написать программу, которая создает динамический массив на N элементов, заполняет его...

Обработка одномерных динамических массивов - C++
1. Удалить из массива положительный элемент. 2. Вставить число 99 после второго элемента массива. 3. Удалить все элементы,...

Сортировка одномерных массивов!!! - C++
все должно быть написано одним кодом и если можно на языке С


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

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