Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
DeStrager
1 / 1 / 0
Регистрация: 12.12.2014
Сообщений: 61
1

Дан числовой массив A размера N. Каждый элемент массива A[k] заменить средним значением первых k элементов

23.12.2014, 21:35. Просмотров 726. Ответов 1
Метки нет (Все метки)

Помогите написать задачку, вот у меня есть динамический массив , что делать дальше?
Кликните здесь для просмотра всего текста
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
#include <stdio.h>
#include <math.h>
#include <windows.h>
#include <stdlib.h>
#include <time.h>
 
void main()
{
 
int i,n,c,k;
int A[10];
 
SetConsoleOutputCP(1251);
i = 1;
printf("Введити размер массива\n");
printf("N=");
scanf_s("%d", &n);
printf("Введите 1 если хотите ввести массив в ручную, 2 если через random\n");
printf("1 или 2\n");
scanf("%d",&c);
if (c==1)
{  ("введите элементы массива\n");
    for (i=0;i<n;i++)
    {
        printf("A[%d]=",i);
    scanf("%d",&A[i]);
    }
    printf("результат\n");
    for (i=0;i<n;i++)
        printf("%4d",A[i]);
 
}
else
{
printf("Массив:\n");
for (i=0; i < n; i++)
{
A[i] = rand() % 100 - 50;
printf("%d ", A[i]);
} 
}
 
getchar(); getchar();
}

Условие задачи:
Кликните здесь для просмотра всего текста

Дан числовой массив A размера N. Каждый элемент массива A[k] заменить средним значением первых k элементов массива.


Добавлено через 1 час 6 минут
Насколько я понял, например если 6 элементов массива у меня (k=6 (1,2,3,4,5,6)), то 3=(1+2)/2: 4=(1+2+3)/3: 5=(1+2+3+4)/4; 6=(1+2+3+4+5)/5. Но могу сообразить как это написать в С
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.12.2014, 21:35
Ответы с готовыми решениями:

Каждый i-ый элемент массива заменить минимальным среди первых i элементов
Каждый из элементов ti массива T(m) заменить минимальным среди первых i элементов этого массива....

Создать третий массив такого же размера каждый элемент которого равен сумме соответствующих элементов двух первых массивов
Даны два двумерных массива одинаковых размеров. а) Создать третий массив такого же размера каждый...

Каждый элемент массива A[k] заменить средним значением первых k элементов массива
Дан числовой массив A размера N. Каждый элемент массива A заменить средним значением первых k...

Каждый элемент массива A[k] заменить средним значением первых k элементов массива
Дан числовой массив A размера N. Каждый элемент массива A заменить средним значением первых k...

Каждый элемент xi массива X (n) заменить средним значением первых i элементов этого массива.
Помогите решить Кожен елемент xi масиву X (n) замінити середнім значенням перших i елементів...

1
chocobo
16 / 16 / 17
Регистрация: 22.06.2013
Сообщений: 73
Записей в блоге: 3
24.12.2014, 07:47 2
sum_prev - это переменная, которая хранит сумму предыдущих элементов. Мы ее делим на количество, то есть текущий индекс.
Цикл начинается с i=1, потому что первый элемент, это первый элемент, до него ничего нет

Со статическим массивом:

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
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
int main()
{
        int A[8] = {13,2,6,4,20,10,9,1};
        int B[8];
        int i,sum_prev;
 
        memset(B,0,8);
        
        B[0] = A[0];
        for(i=1,sum_prev=0;i<8;i++) {
                sum_prev += A[i-1]; 
                
                B[i] = (int)(sum_prev/i); 
            
        }
        
        for(i=0;i<8;i++) 
                printf("%d  ",A[i]);
 
        printf("\n");
 
        for(i=0;i<8;i++) 
                printf("%d  ",B[i]);
        
        return 0;
}
С динамическим:
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
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
 
int main()
{
        
        int *A,*B;
        int N,i,sum_prev;
        scanf("%d",&N);
        A = malloc(sizeof(int)*N);
        B = malloc(sizeof(int)*N);
 
        memset(B,0,8);
 
        /* Вводим массив */
        for(i=0;i<8;i++) 
                scanf("%d",&A[i]);
 
        B[0] = A[0];
        for(i=1,sum_prev=0;i<8;i++) {
                sum_prev += A[i-1]; 
                B[i] = (int)(sum_prev/i); 
        }
 
        /* Выводим массивы */
        for(i=0;i<8;i++) 
                printf("%d  ",A[i]);
        printf("\n");
        for(i=0;i<8;i++) 
                printf("%d  ",B[i]);
        free(B);
        free(A);
        return 0;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.12.2014, 07:47

Каждый из элементов массива заменить средним значением первых элементов этого массива.
текущее сглаживание. Каждый из элементов xi массива X(n) заменить средним значением первых i...

Каждый из элементов x[SUB]i[/SUB] массива X(n) заменить средним значением первых i элементов этого массива
Задание: Каждый из элементов xi массива X(n) заменить средним значением первых i элементов этого...

В массиве B(n) каждый из bi элементов заменить средним значением первых i элементов
14. В массиве B(n) каждый из bi элементов заменить средним значением первых i элементов.


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

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

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