Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.67/18: Рейтинг темы: голосов - 18, средняя оценка - 4.67
0 / 0 / 1
Регистрация: 13.09.2016
Сообщений: 154

Написать функцию: обнулить все элементы, которые больше среднего арифметического элементов исходного массива

23.10.2016, 17:05. Показов 3543. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Написать функцию, которая в массиве вещественных чисел обнуляет все элементы, которые больше среднего арифметического значения элементов исходного массива.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.10.2016, 17:05
Ответы с готовыми решениями:

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

Уничтожить все элементы больше среднего арифметического элементов массива
1. Уничтожить все элементы больше среднего арифметического элементов массива. 2. Сдвинуть циклически на M элементов вправо.

Вывести на экран элементы массива, которые больше среднего арифметического всех его элементов
Ребят помогите пожалуйста решить два массива, а то мне трудно они даються=) 1)Дан массив А из N элементов. Вывести на экран элементы...

24
 Аватар для PAMAH HAPKAMAH
3 / 3 / 10
Регистрация: 22.10.2016
Сообщений: 32
23.10.2016, 22:33
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

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
#include <stdio.h> 
 
int i;
 
void null(float *,int);
 
void main() {
    int n;
    printf("Kolvo elementov massiva - ");
    scanf("%d",&n);
    float a[n];
    for (i=0;i<n;i++)
    {
        printf("a[%d]= ",i+1);
        scanf("%f",&a[i]);
    } 
    null(a,n);
    for (i=0;i<n;i++)
        printf("%.2f ",a[i]);
    getch();
}
 
void null(float a[],int n) {
    float s;
    for(i=0;i<n;i++)
        s+=a[n];
    s=s/n;
    for(i=0;i<n;i++)
        if (a[i]>s) 
            a[i]=0;
}
0
0 / 0 / 1
Регистрация: 13.09.2016
Сообщений: 154
28.10.2016, 15:22  [ТС]
PAMAH HAPKAMAH, спасибо огромное.
Если вам не трудно можете дать небольшой комментарий по поводу написания программы.
0
1786 / 1036 / 445
Регистрация: 12.05.2016
Сообщений: 2,550
28.10.2016, 16:24
Цитата Сообщение от PAMAH HAPKAMAH Посмотреть сообщение
C
1
2
scanf("%d",&n); 
float a[n];
PAMAH HAPKAMAH, вижу такую запись не первый раз, давно так можно делать в си?
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,977
28.10.2016, 16:32
Цитата Сообщение от shvyrevvg Посмотреть сообщение
давно так можно делать в си?
Не поверите, аж с 1999 года с выходом стандарта ANSI C 99. Другое дело - не все компиляторы его поддерживают (мелкомягкому cl к примеру стандарты - не указ)...
1
0 / 0 / 1
Регистрация: 13.09.2016
Сообщений: 154
28.10.2016, 16:53  [ТС]
PAMAH HAPKAMAH, программа не работает...
0
1786 / 1036 / 445
Регистрация: 12.05.2016
Сообщений: 2,550
28.10.2016, 16:59
Цитата Сообщение от Кристина 1998 Посмотреть сообщение
PAMAH HAPKAMAH, программа не работает...
А пишет что?

Добавлено через 2 минуты
Я бы еще s проиницилизировал нулем в функции.
0
0 / 0 / 1
Регистрация: 13.09.2016
Сообщений: 154
28.10.2016, 17:03  [ТС]
shvyrevvg,scanf This function or variable may be unsafe
идентификатор getch не определен,
getch идентификатор не найден
невозможно выделить память для массива постоянного ненулевого размера
0
1786 / 1036 / 445
Регистрация: 12.05.2016
Сообщений: 2,550
28.10.2016, 17:08
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Кристина 1998,
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
#include <stdio.h> 
#include <windows.h> 
 
 
void null(float *,int);
 
int main(void) {
    int n;
    printf("Kolvo elementov massiva - ");
    scanf("%d",&n);
    float a[n];
    for (int i=0;i<n;i++)
    {
        printf("a[%d]= ",i+1);
        scanf("%f",&a[i]);
    } 
    null(a, n);
    for (int i=0;i<n;i++)
        printf("%.2f ",a[i]);
    system("pause");
    return 0;
}
 
void null(float *a, int n) {
    float s = 0;
    for(int i=0;i<n;i++)
        s+=a[i];
    s=s/n;
    for(int i=0;i<n;i++)
        if (a[i]>s) 
            a[i]=0;
}
0
0 / 0 / 1
Регистрация: 13.09.2016
Сообщений: 154
28.10.2016, 17:19  [ТС]
shvyrevvg, мне нельзя использовать дополнительные библиотеки....

Добавлено через 1 минуту
shvyrevvg, так и осталось scanf This function or variable may be unsafe
0
1786 / 1036 / 445
Регистрация: 12.05.2016
Сообщений: 2,550
28.10.2016, 17:21
Цитата Сообщение от Кристина 1998 Посмотреть сообщение
shvyrevvg, мне нельзя использовать дополнительные библиотеки....
Хорошо, какие вам можно использовать? conio.h можно? тогда вместо system("pause") верните getch().

Добавлено через 23 секунды
Цитата Сообщение от Кристина 1998 Посмотреть сообщение
shvyrevvg, так и осталось scanf This function or variable may be unsafe
scanf_s(..)

Добавлено через 1 минуту
Цитата Сообщение от shvyrevvg Посмотреть сообщение
system("pause") верните getch(
Это нужно чтобы окно сразу после выполнения программы не закрылось и Вы могли увидеть результат.
0
0 / 0 / 1
Регистрация: 13.09.2016
Сообщений: 154
28.10.2016, 17:35  [ТС]
shvyrevvg, только include<stdio.h>

Добавлено через 19 секунд
shvyrevvg, scanf_s тоже не помогает...
0
1786 / 1036 / 445
Регистрация: 12.05.2016
Сообщений: 2,550
28.10.2016, 17:44
Цитата Сообщение от Кристина 1998 Посмотреть сообщение
shvyrevvg, scanf_s тоже не помогает...
и printf() на printf_s() тоже заменить нужно.

Добавлено через 4 минуты
Кристина 1998, visual studio?
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
#include <stdio.h> 
#include <windows.h> 
 
 
void null(float *, int);
 
int main(void) {
    int n;
    printf("Kolvo elementov massiva - ");
    scanf_s("%d", &n);
    float a[n];
    for (int i = 0; i<n; i++)
    {
        printf_s("a[%d]= ", i + 1);
        scanf_s("%f", &a[i]);
    }
    null(a, n);
    for (int i = 0; i<n; i++)
        printf_s("%.2f ", a[i]);
    system("pause");
    return 0;
}
 
void null(float *a, int n) {
    float s = 0;
    for (int i = 0; i<n; i++)
        s += a[i];
    s = s / n;
    for (int i = 0; i<n; i++)
        if (a[i]>s)
            a[i] = 0;
}
Добавлено через 1 минуту

Не по теме:

Мде.... Вы мне одногрупницу напомнили.

0
0 / 0 / 1
Регистрация: 13.09.2016
Сообщений: 154
28.10.2016, 18:39  [ТС]
shvyrevvg, да Visual Studio

Добавлено через 2 минуты
shvyrevvg,
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
#include <stdio.h>
 
int main(void)
{
    double mass[30]; //массив вещественных чисел
    int i; //счетчик
    double total,totalavg=0;
 
    printf("Please enter elements.\n");
    for (i=0;i<30;i++)
    {
        printf("Please enter %d element: ",i);
        scanf("%lf",&mass[i]); //заполняем массив с клавиатуры
    }
 
    for (i=0;i<30;i++) //считаем сумму всех элементов
    {
        total+=mass[i];
    }
    printf("Average = %.2f\n",(total/30)); //выводим среднее арифметическое (сумма на число элементов)
 
    for (i=0;i<30;i++) //суммируем элементы, большие среднего арифметического.
    {
        if (mass[i] > (total/30)) totalavg+=mass[i];
    }
 
    printf("Result = %.2f\n",totalavg);
    return 0;
}
А можно ли исправить эту программу под мою?
0
1786 / 1036 / 445
Регистрация: 12.05.2016
Сообщений: 2,550
28.10.2016, 18:44
Цитата Сообщение от Кристина 1998 Посмотреть сообщение
А можно ли исправить эту программу под мою?
Вы её пробовали компилировать? Вам уже дали рабочую версию. Без system("pause") и getch() Окно появляется на доли секунды и исчезает
0
0 / 0 / 1
Регистрация: 13.09.2016
Сообщений: 154
28.10.2016, 19:04  [ТС]
shvyrevvg, ладно -не стоит разбирать эту программу
Спасибо!
0
 Аватар для andreyka93
131 / 131 / 157
Регистрация: 11.04.2015
Сообщений: 343
28.10.2016, 20:13
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
#include <stdio.h> 
#include <time.h>
#include <Windows.h>
#define ARRAY_SIZE      10
#define LOWER_BORDER   -100
#define HIGHER_BORDER   100
 
 
int main()
{
    srand(time(NULL));
    int *a, i;
    double sum = 0, arithmeticAverage = 0;
    BOOL start_flag = FALSE;
    a = malloc(ARRAY_SIZE * sizeof(int));
    printf("The given array:\n");
    for (i = 0; i < ARRAY_SIZE; i++) {
        a[i] = (rand() % (HIGHER_BORDER - LOWER_BORDER + 1)) + LOWER_BORDER;
        printf("%3d ", a[i]);
        sum += a[i];
    }
    arithmeticAverage = sum / ARRAY_SIZE;
    printf("\nThe arithmetic average is: %.0f:\n", arithmeticAverage);
    printf("Array after the transformation:\n");
    for (i = 0; i < ARRAY_SIZE; i++) {
        if (a[i] > arithmeticAverage)
            a[i] = 0;
        printf("%3d ", a[i]);
    }
    printf("\n");
    
    system("pause");
    return 0;
}
1
0 / 0 / 1
Регистрация: 13.09.2016
Сообщений: 154
28.10.2016, 20:27  [ТС]
andreyka93, а использую только include <stdio,h>-это можно сделать?
0
 Аватар для andreyka93
131 / 131 / 157
Регистрация: 11.04.2015
Сообщений: 343
28.10.2016, 20:33
#include <time.h> библиотека используется для генератора случайных чисел, мне лень забивать массив вручную
#include <Windows.h> библиотека используется для команды system("pause"); чтобы после выполнения консоль не закрывалась
1
0 / 0 / 1
Регистрация: 13.09.2016
Сообщений: 154
28.10.2016, 20:34  [ТС]
andreyka93, мне нельзя использовать все эти библиотеки
Спасибо большое!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.10.2016, 20:34
Помогаю со студенческими работами здесь

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

Массив: все элементы, больше среднего арифметического элементов массива, заменить на 0
Ээй,помогите пожалуйста):flirt: заполнить двумерный массив NxN случайными числами из интервала,все элементы больше среднего...

Переписать во второй массив те элементы первого, которые больше среднего арифметического всех элементов массива
1. Заполнить одномерный массив из N элементов (N - задано константой, N&lt;=100) случайными вещественными числами на промежутке от A до B (A,...

Удалить все четные элементы, имеющие значение больше среднего арифметического всех элементов массива
Удалить все четные элементы, имеющие значение больше среднего арифметического всех элементов массива Пример: из массива А: 8 7 2 6 5...

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


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru