C/C++

ПОМГИТЕ ПО ПРОГРАММИРОВАНИЮ!!!

Дан массив, содержащий N (1≤N≤1000) целых элементов. Напишите программу, которая вставляет между каждыми двумя элементами сумму остальных элементов (например, массив -1,2,5,0,2 станет -1,7,2,1,5,3,0,6,2)
Использовать динамический массив
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>

const unsigned var_to_const (unsigned i)
{ /* Эта функция превращает переменную unsigned в константу const unsigned */
return i;
}

int main()
{
unsigned N;
{
printf("Введите N (от 1 до 1000): ");
scanf("%u", &N);
} while (N == 0 || N > 1000);
int A[var_to_const(N)]; /* Первый массив с цифрами */
int B[var_to_const(N) * 2]; /* Второй массив с цифрами */
/* генерируем первый масси. Если числа вводятся вручную, то эту
часть нужно изменить */
srand(time(NULL));
for (unsigned x = 0; x < N; x++)
{
A[x] = (rand() % 10)*pow(-1.0, rand() % 2);
printf ("%d ", A[x]);
}
putchar ('\n');

/* Теперь главная часть программы */
unsigned j = 0;
for(unsigned x = 0; x < N; x++)
{
B[j] = A[x];
j++;
if (x < N - 1)
{
int sum = 0;
for(unsigned y = 0; y < x; y++)
sum += A[y];
for(unsigned z = x+2; z < N; z++)
sum += A[z];
B[j] = sum;
j++;
}
}

/* Напечатать второй массив */
for (unsigned k = 0; k < j; k++)
printf ("%d ", B[k]);
putchar ('\n');

return 0;
}
Нурзат Нурзат
Нурзат Нурзат
97 695
Лучший ответ
Нурзат Нурзат Я сразу не подумал, что можно найти сумму всех элементов и при создании второго массива вычитать две соседние величины, как это сделал Иван Сигаев.
Темка - Артемка а здесь использован динамический массив?
Примерно так - подразумевается что динамический массив = vector
s=accumulate(arr.begin(),arr.end(),0);
for(i=1;i<arr.size();i+=2)arr.insert(i,s-arr[i-1]-arr[i]);
Камол Азимов
Камол Азимов
79 752