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

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

Войти
Регистрация
Восстановить пароль
 
Desert Eagle
0 / 0 / 0
Регистрация: 18.09.2010
Сообщений: 106
#1

Массивы. - C++

25.10.2011, 21:26. Просмотров 304. Ответов 3
Метки нет (Все метки)

Доброго времени суток.
Помогите решить задачу: В одномерном массиве, состоящем из n вещественных элементов, вычислить:
1) сумму положительных элементов массива;
2) произведение элементов массива, расположенных между максимальным по модулю и минимальным по модулю элементами.
3) упорядочить элементы массива по убыванию.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.10.2011, 21:26     Массивы.
Посмотрите здесь:

массивы C++
массивы в С++ C++
C++ Массивы
C++ Массивы
Массивы С++ C++
Массивы C++
Массивы C++
Массивы C++
C++ Массивы
C++ Массивы
Массивы C++
C++ Массивы

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Revol'veR
23 / 23 / 2
Регистрация: 05.11.2010
Сообщений: 134
25.10.2011, 21:31     Массивы. #2
Сумма положительных элементов массива
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
using namespace std;
 
int main()
{
    int a[5],sum = 0, count = 0;
    cout << "Enter mas: \n";
    
    for(int i=0;i<5;i++)
    cin >> a[i];
    
    for(int i=0;i<5;i++)
    if(a[i]>0){sum += a[i]; count++;}
    
    cout << "Sum = " << sum << "  Kol-vo = " << count;
    
    cin.get();
    cin.get();
}
Или все вместе:
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
#include <iostream>
#include <math.h>
using std::cin;
using std::cout;
using std::endl;
int main(){
int n,i,j,
maxelem, minelem; // Номера максимального и минимального элементов
float summ = 0, // Сумма положительных элементов
temp;
cout << "Enter n: "; // Ввод количества элементов массива
cin >> n;
float *arr = new float [n]; // Создание массива
for (i = 0; i < n; i++){
cout << "Enter element number " << i + 1 << " : "; // Ввод элементов массива
cin >> arr[i];
}
maxelem = minelem = 0;
for (maxelem=minelem=i=summ=0;i<n;i++){
if (arr[i] > 0) summ += arr[i]; // Сумма положительных элементов
if (fabs(arr[i]) > fabs(arr[maxelem])) maxelem = i; // Определение номера максимального по модулю элемента
if (fabs(arr[i]) < fabs(arr[minelem])) minelem = i; // И минимального
}
cout << "Summ of positive elements = " << summ << endl; // Вывод суммы положительных елементов
if (abs(maxelem - minelem) > 1){ // Если между максимальным и минимальным по модулю элементами
// есть элементы
int stelem = (maxelem < minelem ? maxelem : minelem); // Определяем какой из максимального и минимального элементов
int endelem = (maxelem < minelem ? minelem : maxelem); // имеет меньший номер
for (i = stelem + 1,temp = 1; i < endelem; i++)
temp *= arr[i]; // Произведение промежуточных элементов
cout << "Product of elements between max and min = " << temp << endl; // Вывод полученного произведения
}
else
cout << "No elements between max and min.";
cout << "Source array:\n[";
for (i = 0; i < n; i++) // Вывод исходного массива
cout << arr[i] << (i < n-1 ? ", " : "]\n"); //
// Сортировка массива методом сравнения:
for (int i = 0; i < n-1; i++) // Проход всего массива кроме последнего элемента
for (int j = i + 1; j <= n-1; j++) // Проход оставшейся части массива
if (arr[i] < arr[j]){ // Сравнение текущего элемента с элементом из оставшейся части.
temp = arr[i]; // Обмен значений элементов если они стоят в неправильном порядке
arr[i] = arr[j];
arr[j] = temp;
}
 
cout << "Array sorted by decreasing:\n[";
for (i = 0; i < n; i++) // Вывод отсортированного массива
cout << arr[i] << (i < n-1 ? ", " : "]\n"); //
delete [] arr;
cin.get(),cin.get();
return 0;
}
Неужели так тяжело погуглить?
MrGluck
Ворчун
Эксперт CЭксперт С++
6614 / 3805 / 495
Регистрация: 29.11.2010
Сообщений: 10,044
25.10.2011, 21:38     Массивы. #3
1.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include<iostream>
#include<conio.h>
using namespace std;
 
int main()
{
    int mass[5] = {10, -6, 2, 4, 1}, sum = 0;
    for (int i = 0; i < 5; i++)
        if (mass[i] > 0)
            sum += mass[i];
    cout<< sum;
    getch();
    return 0;
}
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
#include <iostream>
#include <conio.h>
#include <cmath>
using namespace std;
 
int main()
{
    int mass[5] = {1, -6, 2, 4, 1}, min = abs(mass[0]), min_index = 0,
                  max = abs(mass[0]), max_index = 0, x = 1;
    for (int i = 0; i < 5; i++)
    {
        if (abs(mass[i]) > max)
        {
            max = abs(mass[i]);
            max_index = i;
        }
        if (abs(mass[i]) < min)
        {
            min = abs(mass[i]);
            min_index = i;
        }
    }
    for (int i = min_index; i <= max_index && i < 5; i++)
        x *= mass[i];
    cout<< x;
    getch();
    return 0;
}
3.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include<iostream>
#include<conio.h>
using namespace std;
 
int comp(const void *i, const void *j)
{
  return *(int *)j - *(int *)i;
}
 
int main()
{
    int mass[5] = {10, 6, 2, 4, 1};
    qsort (mass, 5, sizeof (int), comp);
    for (int i = 0; i < 5; i++)
        cout<< mass[i]<< " ";
    getch();
    return 0;
}
Desert Eagle
0 / 0 / 0
Регистрация: 18.09.2010
Сообщений: 106
25.10.2011, 21:42  [ТС]     Массивы. #4
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
#include <iostream>
 #include <math.h>
 using namespace std;
 
 int main()
 {
 int n;
 
 cout << "Enter n: "; 
 cin >> n;
 
 float *arr = new float [n]; 
 
 for (int i = 0; i <= n-1; i++)
 {
 cout << "номер" << i + 1 << " : ";
 cin >> arr[i];
 }
 
 float summ = 0; 
 
 int maxelem, minelem; 
 maxelem = minelem = 0;
 
 for (int i = 0; i <= n-1; i++) 
 {
 if (arr[i] > 0)
 summ += arr[i]; /
 
 if (fabs(arr[i]) > fabs(arr[maxelem])) maxelem = i; 
 if (fabs(arr[i]) < fabs(arr[minelem])) minelem = i; 
 
 cout << "сумма позиций = " << summ << endl; 
 
 if (abs(maxelem - minelem) > 1) 
 
 int stelem = (maxelem < minelem ? maxelem : minelem);  
 int endelem = (maxelem < minelem ? minelem : maxelem); 
 
 float multipl = 1;
 
 for (int i = stelem + 1; i < endelem; i++)
 multipl *= arr[i]; 
 
 cout << "произвед = " << multipl << endl; 
 }
 else
 cout << "нет элементов";
 
 
 cout << "Source array:\n[";
 for (int i = 0; i <= n-1; i++) 
 cout << arr[i] << (i < n-1 ? ", " : "]\n"); //
 
 
 
 
 
 float temp; 
 
 for (int i = 0; i < n-1; i++) 
 {
 for (int j = i + 1; j <= n-1; j++) 
 {
 if (arr[i] < arr[j]) 
 {
 temp = arr[i]; 
 arr[i] = arr[j];
 arr[j] = temp;
 }
 }
 } 
 
 
 
 cout << "сортировка:\n[";
 for (int i = 0; i <= n-1; i++) 
 cout << arr[i] << (i < n-1 ? ", " : "]\n"); 
 
 delete [] arr;
 
 return 0;
 }
спасибо за то, что ответили. а то я прогу написал, но она не робит, а в чем ошибка понять не могу.
Yandex
Объявления
25.10.2011, 21:42     Массивы.
Ответ Создать тему
Опции темы

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