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

Заменить максимальное значение массива средним арифметическим его элементов с нечетных позиций

09.12.2017, 12:02. Показов 3551. Ответов 15
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите с задачкой! Голову сломал уже.
В одномерном массиве целых чисел заменить максимальное значение средним арифметическим его элементов, находящихся на нечетных позициях.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.12.2017, 12:02
Ответы с готовыми решениями:

Заменить максимальный элемент массива средним арифметическим элементов, находящихся на нечётных позициях
Что то не сходиться в проге, не могу понять. Вроде всё правильно, но выдаёт ошибку. Что не так?...

Максимальное значение матрицы заменить средним арифметическим чисел строки
в матрице d максимальное значение заменить средним арифметическим чисел строки в которой...

В одномерном массиве целых чисел заменить минимальное значение средним арифметическим его элементов, находящихся на четных позициях
Уважаемые программисты помогите в решение данной задачи. В одномерном массиве целых чисел заменить...

Определить разность между средним арифметическим элементов массива и средним арифметическим максимального и минимального элементов
Здравствуйте, у меня не выводит все значения которые прошу вывести задание:Дан двумерный массив...

15
Диссидент
Эксперт C
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
09.12.2017, 12:16 2
Цитата Сообщение от 10100 Посмотреть сообщение
Голову сломал уже.
Обломки показать не хочешь?
0
16 / 16 / 10
Регистрация: 27.10.2015
Сообщений: 104
09.12.2017, 12:38 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
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
using namespace std;
 
int main(int argc, char** argv) {
    time_t t; srand(t);
    double mas[10];
    for (int i=0; i<10; ++i)
        mas[i]=rand()%100;
    
    for (int i=0; i<10; ++i)
        cout << mas[i] << " ";
    
    double max = 0; int jmax=0;
    for (int i=0; i<10; ++i) 
        if (max<mas[i]) {
            max=mas[i];
            jmax=i;
    }
    cout << "\nMax: " << max;
    
    double s=0; int count=0;
    for (int i=0; i<10; ++i)
        if (i%2!=0) {
            count++;
            s=s+mas[i];
        }
    s=s/count;
    
    mas[jmax]=s;
    cout << endl;
    for (int i=0; i<10; ++i)
        cout << mas[i] << " ";
    return 0;
}
1
Диссидент
Эксперт C
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
09.12.2017, 12:53 4
Okozaoko, На первый взгляд все не так уж плохо.
Замечания.1.
Цитата Сообщение от 10100 Посмотреть сообщение
В массиве целых чисел ... double mas[10];
Противуречие. Но будем считать - double
2. переменная t не инициализирована. Надо srand(time(NULL));
Попробуй так
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 <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
using namespace std;
 
int main(int argc, char** argv) {
    srand(time(NULL));
    double mas[10];
    for (int i=0; i<10; ++i) {
        mas[i]=rand()%100;
        cout << mas[i] << " ";
    }    
    cout << endl;
    int jmax=0;
    double s=0; int count=0;
    for (int i=1; i<10; ++i) {
        if (mas[jmax]<mas[i]) 
            jmax=i;
        if (i%2!=0) {
            count++;
            s=s+mas[i];
        }
    }
    cout << "\nMax: " << mas[jmax] << endl;
    s=s/count;
    
    mas[jmax]=s;
    cout << endl;
    for (int i=0; i<10; ++i)
        cout << mas[i] << " ";
    cout << endl;
    return 0;
}
0
16 / 16 / 10
Регистрация: 27.10.2015
Сообщений: 104
09.12.2017, 12:55 5
Сначала сама писала тип int, но потом исправила на double, так как элемент массива нужно будет заменить средним арифметическим. А это далеко не всегда целочисленное значение.
Благодарю за замечания)
0
7 / 8 / 1
Регистрация: 09.12.2017
Сообщений: 140
09.12.2017, 15:03  [ТС] 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
#include <clocale>
 
 
const int ARR = 5;
 
void main()
{
    
    setlocale(LC_CTYPE, "Russian");
    using namespace std;
    int arr[ARR];
    int sum = 0.0;    // переменная для суммы чисел в массиве
 
    for (int i = 0; i < ARR; i++) {
        cout << "Введите элемент массива " << i << ": ";
        cin >> arr[i];  
        sum += arr[i]; 
    }
    ARR % 2 != 0;
    cout << "Среднее арифметическое чисел в массиве: " << sum / ARR << endl;
 
    system("pause");
}
0
Диссидент
Эксперт C
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
09.12.2017, 16:17 7
Okozaoko, простите, Бога ради, я вас перепутал с ТС. Но общими усилиями нам, кажется, удалось соорудить какой-то код, похожий на рабочий. Не проверял, но на первый взгляд - вполне прилично.
10100, В ваших "обломках", да, есть немножко бредятинки. Видно, что язык вы только начинаете изучать. Попробуйте пока код из поста 4. И продолжайте изучение.
0
7 / 8 / 1
Регистрация: 09.12.2017
Сообщений: 140
09.12.2017, 17:01  [ТС] 8
Байт, код генерирует 10 случайных чисел, вычисляе5т наибольшее, и снова пишет тот же ряд чисел(
0
Диссидент
Эксперт C
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
09.12.2017, 18:11 9
10100, Покажи свой код. Может быить ты его скопипастил с ошибкой? Ну и вывод покажи.
0
7 / 8 / 1
Регистрация: 09.12.2017
Сообщений: 140
09.12.2017, 18:51  [ТС] 10
Байт , где скопастил с ошибкой?
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
#include "stdafx.h"
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
using namespace std;
 
int main(int argc, char** argv) {
    srand(time(NULL));
    double mas[10];
    for (int i = 0; i<10; ++i) {
        mas[i] = rand() % 100;
        cout << mas[i] << " ";
    }
    cout << endl;
    int jmax = 0;
    double s = 0; int count = 0;
    for (int i = 1; i<10; ++i) {
        if (mas[jmax]<mas[i])
            jmax = i;
        if (i % 2 != 0) {
            count++;
            s = s + mas[i];
        }
    }
    cout << "\nMax: " << mas[jmax] << endl;
    s = s / count;
 
    mas[jmax] = s;
    cout << endl;
    for (int i = 0; i<10; ++i)
        cout << mas[i] << " ";
    cout << endl;
    getchar();
    return 0;
}
результат:
Изображения
 
0
Диссидент
Эксперт C
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
09.12.2017, 22:25 11
10100, А чего тебе не понравилось? Имхо, все сработало. Предпоследний элемент (85 - максимальный) был заменен на 25.4.
Так что не выпендривайся, и скажи спасибо!
0
16 / 16 / 10
Регистрация: 27.10.2015
Сообщений: 104
10.12.2017, 02:46 12
Цитата Сообщение от Байт Посмотреть сообщение
я вас перепутал с ТС
Байт, ничего страшного, всякое бывает
0
7 / 8 / 1
Регистрация: 09.12.2017
Сообщений: 140
10.12.2017, 16:35  [ТС] 13
Байт, Okozaoko спасибо конечно, но что это за цифра 25,4? Уж точно не среднее значение нечетных чисел в массиве.
0
16 / 16 / 10
Регистрация: 27.10.2015
Сообщений: 104
10.12.2017, 20:17 14
Лучший ответ Сообщение было отмечено 10100 как решение

Решение

19+16+1+26+65 =127
127/5=25.4

Не забывайте, что индексация в массиве происходит с нуля (0,1,2,3,4...)
1
Диссидент
Эксперт C
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
10.12.2017, 20:48 15
Лучший ответ Сообщение было отмечено 10100 как решение

Решение

Цитата Сообщение от 10100 Посмотреть сообщение
Уж точно не среднее значение нечетных чисел в массиве.
Внимательнее читайте собственное задание.
Цитата Сообщение от 10100 Посмотреть сообщение
находящихся на нечетных позициях.
Имеется в виду - имеющие нечетный индекс. И да, с 0 индексация. Если вам хочется иначе, тогда замените условие if (i%2 !=0)... сами подумайте, на какое...
1
7 / 8 / 1
Регистрация: 09.12.2017
Сообщений: 140
11.12.2017, 17:21  [ТС] 16
Байт, Okozaoko спасибо еще раз. выручили. А я все ищу среднее нечетных чисел. Сам неверно понял.
0
11.12.2017, 17:21
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.12.2017, 17:21
Помогаю со студенческими работами здесь

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

Заменить значение пятого элемента нового массива средним арифметическим исходного массива
Ввести массив, состоящий из 12 элементов целого типа. Получить новый массив, заменив значение ...

Заменить положительные элементы средним арифметическим всех элементов массива
Дан массив. Если элементы выше ноля надо заменить их средним арифметическим значением всех...

Нулевые элементы массива заменить средним арифметическим всех элементов
Задание: Создать числовой массив A. Каждый элемент, равный нулю, заменить средним арифметическим...

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

Заменить все элементы массива с четными индексами средним арифметическим всех элементов массива
Добрый день! не получается решить задачу. Не могу уразуметь как работать с индексами. Прошу...


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

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