Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C (СИ) Списки в си http://www.cyberforum.ru/c-beginners/thread2189154.html
Как удалить элемент с максимальной суммой соседей справа и слева (для первого и последнего элемента в строке, естественно, определен только один сосед) , если таких элементов несколько, то удалить...
Найти номер последнего минимального элемента средиэлементов, меньших Т1 и расположенных до первого элемента, большего Т2 C (СИ)
Работает правильно ,только если встречает число >=Т2. В другом случае выводит номер,равный размерности массива+1,сообщение NET elementow mensche T1 также не выодит. Не могу понять,где ошибка....
C (СИ) Нужно, чтобы функция mas была вызвана в функции main, помогите, пожалуйста...
#include <stdio.h> #include <stdlib.h> #include <math.h> #include <conio.h> #define M 2 #define N 2 void mas(int A) { srand(time(NULL));
C (СИ) Ошибка сегментации при добавлении узла бинарного дерева делал реализацию добавления узла в бинарное дерево, но ловлю сегфолт, почему ? что здесь не так? изменяем же по указателю #include <stdio.h> #include <stdlib.h> struct node { int v; ... http://www.cyberforum.ru/c-beginners/thread2188864.html
C (СИ) Компилятор выдает ошибку (switch expression has illegal type) http://www.cyberforum.ru/c-beginners/thread2188845.html
Добрый день! Почему switch выдает такую ошибку: (switch expression has illegal type)? Программирую микроконтроллер от Silicon labs. В начале кода было объявление переменных: Led1 и Led2 - имеют...
Литература по Си на русском C (СИ)
Подскажите, пожалуйста, какие есть стоящие книги/учебники по Си, помимо: Б. Керниган, Д. Ритчи — Язык программирования Си. 3-е изд. С. Прата — Язык программирования C. Лекции и упражнения, 6-е изд....
Ввести два массива A(n) и B(n): вычислить элементы массива C(n-1) по формуле C (СИ)
Составить программу для ввода двух одномерных массивов А и В размерностью n элементов и вычисления массива С размерностью n-1, каждый элемент которого получен как сумма перемноженных пар соседних...
C (СИ) Ошибка в коде си Добрый день,буду благодарен за помощь в данном коде,выдает ошибку. return makes integer from pointer without a cast assignment makes pointer from integer without a cast main.c #include... http://www.cyberforum.ru/c-beginners/thread2188779.html
C (СИ) Построковый форматированый вывод из файла http://www.cyberforum.ru/c-beginners/thread2188717.html
Здравствуйте, прошу особо не серчать, в си я недавно. В общем такая ситуация, есть файл каждая строка из которого является частью сетевого пакета(в примере 10 строк, но в дальнейшем работа будет с...
C (СИ) Найти произведение всех цифр числа Помогите пожалуйста доделать эту программу с помощью указателей) int a; int m = 1; scanf_s("%d", &a); for (int i = a % 10; a > 0; a /= 10, i = a % 10 ) { printf_s("%d", i); ... http://www.cyberforum.ru/c-beginners/thread2188710.html
stake-k26
676 / 467 / 355
Регистрация: 25.04.2016
Сообщений: 1,333
14.02.2018, 14:22 0

В массиве A (n) каждый элемент, кроме первого заменить суммой всех предыдущих элементов

14.02.2018, 14:22. Просмотров 542. Ответов 7
Метки (Все метки)

Ответ

Hitoku, сумма всех предыдущих никак не может включать в себя текущий элемент. А вы считаете и его. На мой взгляд вариант с вложенным циклом самый удобоваримый, т.е. что-то вроде этого:
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
#include <stdio.h>
#include <stdlib.h>
//#include <conio.h>
 
/* *****************************************************************
 * В массиве A(n) каждый элемент, кроме первого заменить суммой всех
 * предыдущих элементов.
 * ****************************************************************/
void print_arr (int * a, int n)         // массив на экран
{
    int i;
    for (i=0; i<n; i++)
        printf("%3d", a[i]);
    printf("\n");
}
 
int main (void)
{
    int i, k;   // счетчики
    int n, s;   // размер массива, сумма
 
    printf("Введите n: ");
    scanf("%d", &n);            // размер массива
    if (n < 1) return -1;   // нулевой размер массива
 
    int * a;                        // указатель на массив
    if ((a = (int *) malloc(sizeof(int) * n)) == NULL) return -1;
 
    for (i=0; i<n; i++)     // получаем элементы массива с клавиатуры
    {
        printf("a[%i] = ", i);
        scanf("%i", &a[i]);
    }
 
    print_arr(a, n);            // массив на экран
 
    for (i=1; i<n; i++)     // каждый элемент = сумма всех предыдущих
    {
        for (k=s=0; k<i; k++)
            s += a[k];
        a[i] = s;
    }
 
    print_arr(a, n);            // массив на экран
    free(a);                        // освобождаем память
    return 0;
}
печать массива на экран вынесена отдельной функцией просто, чтобы не засорять код.

или для Linux:
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 <stdlib.h>
//#include <conio.h>
 
/* *****************************************************************
 * В массиве A(n) каждый элемент, кроме первого заменить суммой всех
 * предыдущих элементов.
 * ****************************************************************/
void print_arr (int * a, int n)         // массив на экран
{
    int i;
    for (i=0; i<n; i++)
        printf("%3d", a[i]);
    printf("\n");
}
 
int main (void)
{
    int i, k;   // счетчики
    int n, s;   // размер массива, сумма
 
    printf("Введите n: ");
    scanf("%d", &n);            // размер массива
    if (n < 1) return -1;
 
    int a[n];                   // массив
    for (i=0; i<n; i++)     // получаем элементы массива с клавиатуры
    {
        printf("a[%i] = ", i);
        scanf("%i", &a[i]);
    }
 
    print_arr(a, n);            // массив на экран
 
    for (i=1; i<n; i++)     // каждый элемент = сумма всех предыдущих
    {
        for (k=s=0; k<i; k++)
            s += a[k];
        a[i] = s;
    }
 
    print_arr(a, n);            // массив на экран
    return 0;
}
Добавлено через 5 минут
FlazyC, такое объявление массивов
Цитата Сообщение от FlazyC Посмотреть сообщение
int *p=new int[n]; //ввод масисва
характерно для с++, но никак не для си.

Вернуться к обсуждению:
В массиве A (n) каждый элемент, кроме первого заменить суммой всех предыдущих элементов
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.02.2018, 14:22

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

В массиве А(n) каждый элемент, кроме первого, заменить суммой всех предыдущих элементов
помогли пожалуйста. мне помогли написать программу, но не совсем правильно, не могли бы помочь...

В массиве A(n) каждый элемент, кроме первого, заменить суммой всех предыдущих элементов
Требуется написать программу в Лазарус. В массиве A(n) каждый элемент, кроме первого, заменить...

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