Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
8 / 8 / 3
Регистрация: 22.09.2012
Сообщений: 179
1

В одномерном массиве, состоящем из n вещественных элементов, вычислить:

22.09.2012, 17:16. Показов 1869. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
1) среднее арифметическое всех положительных элементов;
2) сумму элементов, расположенных до максимального элемента.

Объясните пожалуйста подробно процесс написания массива.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.09.2012, 17:16
Ответы с готовыми решениями:

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

В одномерном массиве,состоящем из n вещественных элементов,вычислить:
В одномерном массиве,состоящем из n вещественных элементов,вычислить : 1) кол-во отрицательных...

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

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

13
1458 / 795 / 257
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
22.09.2012, 18:05 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
const int size = 20;
 
int main()
{
    SetConsoleCP (1251); SetConsoleOutputCP (1251);
    srand(time(0));
    int arr[size];
    for (int i = 0; i<size; i++)
        arr[i] = -10 + rand()%21; //случайные числа от -10 до 20
    for (int x:arr) cout<<x<<" "; //наш массив
    cout<<endl;
    double result = 0; //среднее арифметическое всех положительных элементов
    int num = 0;  //количество положительных элементов
    for (int i = 0; i<size; i++)
    {
        if (arr[i]>0)
        {
            result+=arr[i];
            num++;
        }
    }
    cout<<"Среднее арифметическое всех положительных элементов           "<<result/num<<endl;
    auto it = max_element(arr, arr+size);
    cout<<"Макимальный елемент:                                          "<<*it<<endl;
    int sum = 0;
    for (int i = 0; i<size; i++)
    {
        if (arr[i]<*it) sum+=arr[i];
        else
            break; // если доберемся до нашего максимального елемента, то прерываем подщет суммы
    }
    cout<<"Сумма элементов, расположенных до максимального элемента:     "<<sum<<endl;
 
    system("pause");
    return 0;
}
1
ComfyMobile
401 / 282 / 34
Регистрация: 24.07.2012
Сообщений: 916
22.09.2012, 18:06 3
блин уже не актуально
1
96 / 748 / 279
Регистрация: 11.04.2012
Сообщений: 971
22.09.2012, 18:15 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
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
 
#define N 20
 
int main()
{
    int* A = new int[N];
    for (int n = 0; n < N; n++)
    {
        A[n] = rand() % (2 * N) - N;
        printf("%d ",A[n]);
    }
 
    double avg = 0;
    for (int i = 0; i < N; i++)
        if (A[i] > 0) avg+=(double)A[i]/N;
 
    printf("\n\naverage = %lf\n",avg);
 
    int max = 0;
    for (int q = 0; q < N; q++)
        max = (A[q] > A[max]) ? q : max;
 
    int sum = 0, d = 0;
    while (A[d] != A[max] && d < N)
        sum+=A[d++];
 
    printf("\nsum = %d\n",sum);
 
    _getch();
 
    return 0;
}
1
8 / 8 / 3
Регистрация: 22.09.2012
Сообщений: 179
22.09.2012, 18:25  [ТС] 5
Актуально, но небольшая просьба, нужна программа на начинающем уровне. Т.е. нужен printf вместо cin/cout или scanf.
0
ComfyMobile
401 / 282 / 34
Регистрация: 24.07.2012
Сообщений: 916
22.09.2012, 18:32 6
да тут все предложенные коды , нормальный уровень , ты если не понимаешь спроси, тебе подскажут
0
8 / 8 / 3
Регистрация: 22.09.2012
Сообщений: 179
22.09.2012, 18:46  [ТС] 7
Сначала разберусь с программой yuron_477.
1. "const int size = 20;" - это значит что массив будет размером 20 ячеек?
2. " SetConsoleCP (1251); SetConsoleOutputCP (1251);" вообще не понятно.
srand(time(0));
int arr[size];
for (int x:arr) cout<<x<<" "; //наш массив
cout<<endl;
3. <<result/num<<endl;
<<*it<<endl;

Поясните пожалуйста
0
ComfyMobile
401 / 282 / 34
Регистрация: 24.07.2012
Сообщений: 916
22.09.2012, 18:59 8
Цитата Сообщение от Evgeniy_Fox Посмотреть сообщение
Сначала разберусь с программой yuron_477.
1. "const int size = 20;" - это значит что массив будет размером 20 ячеек?
2. " SetConsoleCP (1251); SetConsoleOutputCP (1251);" вообще не понятно.
srand(time(0));
int arr[size];
for (int x:arr) cout<<x<<" "; //наш массив
cout<<endl;
3. <<result/num<<endl;
<<*it<<endl;

Поясните пожалуйста
1 обсалютно верно , size инициализируется константой размером 20 можно делать динамически, но и во втором варианте кода инициализация размера определена однозначно
2
C++
1
SetConsoleCP (1251); SetConsoleOutputCP (1251);
это для консоли чтоб русские буквы выводило вроде как, могу ошибатся
C++
1
srand(time(0));
так как дальше все элементы массива будут случайными эта строка производит ГСВ
C++
1
for (int x:arr) cout<<x<<" "; //наш массив
тут я сам затрудняюсь помочь будем ждать автора кода
C++
1
<<result/num<<endl;
вывод вначале среднеарифметического а потом количества положительных endl перевод на следующую строку консоли
C++
1
2
 auto it = max_element(arr, arr+size);
<<*it<<endl;
как видно it принимает значение максимального элемента массива на выход идет содержимое it
0
1458 / 795 / 257
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
22.09.2012, 19:03 9
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
const int size = 20;  //обычное обявление константы для задания размера нашего массива
 
int main()
{
    SetConsoleCP (1251); SetConsoleOutputCP (1251); //это для поддержания кодировки русских букв в программе,
                                                    //можете убрать, но писать придется по английски
    srand(time(0));  //это для того чтоб каждый раз при запуске программы генерировальсь разные числа от rand()
    int arr[size];
    for (int i = 0; i<size; i++)
        arr[i] = -10 + rand()%21; //случайные числа от -10 до 20
    for (int x:arr) cout<<x<<" "; //наш массив
    //можно заменить на:
    //for (int i = 0; i<size; i++)
        //cout<<arr[i]<<" ";
Добавлено через 3 минуты
it в данном случае будет указателем на максимальный элемент, для вывода на экран его надо разименновать - *it.
0
ComfyMobile
401 / 282 / 34
Регистрация: 24.07.2012
Сообщений: 916
22.09.2012, 19:04 10
Цитата Сообщение от yuron_477 Посмотреть сообщение
for (int x:arr) cout<<x<<" ";
а можешь и мне объяснить ,как этот цикл работает, или как в поисковике про него правильно спросить ,1 раз такой хитрый вижу
0
1458 / 795 / 257
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
22.09.2012, 19:15 11
для компиляции надо подключить
C++
1
2
3
4
#include <iostream>
#include <algorithm>
#include <ctime>
#include <Windows.h>
Добавлено через 9 минут
Цитата Сообщение от Nixy Посмотреть сообщение
а можешь и мне объяснить ,как этот цикл работает
Цитата с книги:
Кликните здесь для просмотра всего текста
В C++11 была добавлена новая форма цикла, которая называется циклом for,
основанным на диапазоне. Она упрощает одну общую задачу цикла — делать что-то с
каждым элементом массива или, в более общем случае, с одним из контейнерных
классов, таким как vector или array.
Ниже показан пример:
double prices[5] = {4.99, 10.99, 6.87, 7.99, 8.49};
for (double x : prices)
cout << x << std: :endl;
Здесь x изначально представляет первый член массива prices. После
отображения первого элемента цикл затем проходит по х для представления оставшихся
элементов массива, так что код выведет все пять членов, по одному в строке. Короче
говоря, этот цикл отображает все значения, включенные в диапазон массива.

Чтобы изменить значения в массиве, понадобится применить другой синтаксис
для переменной цикла:
for (double &x : prices)
х = х * 0.80; // скидка 20%
Символ & идентифицирует х как ссылочную переменную; эта тема раскрывается в
главе 8. Здесь важно то, что такая форма объявления позволяет последующему коду
изменять содержимое массива, тогда как первая форма не разрешает этого.
Цикл for, основанный на диапазоне также может использоваться со списками
инициализации:
for (int x : {3, 5, 2, 8, 6})
cout << х « " ";
cout « ' \nf ;

2
ComfyMobile
401 / 282 / 34
Регистрация: 24.07.2012
Сообщений: 916
22.09.2012, 19:19 12
Кликните здесь для просмотра всего текста
Цитата Сообщение от yuron_477 Посмотреть сообщение
для компиляции надо подключить
C++
1
2
3
4
#include <iostream>
#include <algorithm>
#include <ctime>
#include <Windows.h>
Добавлено через 9 минут
Цитата с книги:
Кликните здесь для просмотра всего текста
В C++11 была добавлена новая форма цикла, которая называется циклом for,
основанным на диапазоне. Она упрощает одну общую задачу цикла — делать что-то с
каждым элементом массива или, в более общем случае, с одним из контейнерных
классов, таким как vector или array.
Ниже показан пример:
double prices[5] = {4.99, 10.99, 6.87, 7.99, 8.49};
for (double x : prices)
cout << x << std: :endl;
Здесь x изначально представляет первый член массива prices. После
отображения первого элемента цикл затем проходит по х для представления оставшихся
элементов массива, так что код выведет все пять членов, по одному в строке. Короче
говоря, этот цикл отображает все значения, включенные в диапазон массива.

Чтобы изменить значения в массиве, понадобится применить другой синтаксис
для переменной цикла:
for (double &x : prices)
х = х * 0.80; // скидка 20%
Символ & идентифицирует х как ссылочную переменную; эта тема раскрывается в
главе 8. Здесь важно то, что такая форма объявления позволяет последующему коду
изменять содержимое массива, тогда как первая форма не разрешает этого.
Цикл for, основанный на диапазоне также может использоваться со списками
инициализации:
for (int x : {3, 5, 2, 8, 6})
cout << х « " ";
cout « ' \nf ;


спасибо ,что то подобное есть в Java , вы опровдали мои догадки)
0
8 / 8 / 3
Регистрация: 22.09.2012
Сообщений: 179
22.09.2012, 19:20  [ТС] 13
Спасибо большое всем за помощь!
0
0 / 0 / 0
Регистрация: 16.10.2012
Сообщений: 59
18.12.2012, 15:53 14
а можно эту же задачу ток в турбо паскале
0
18.12.2012, 15:53
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.12.2012, 15:53
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru