Дан массив из N элементов (N < 1000), причем N - четное. Вставить в середину массива сумму всех элементов, все элементы справа сдвинуть в сторону.
Формат входных данных
В первой строке вводится число N (N < 1000).
Во второй строке вводятся элементы массива ai (|ai|<231-1).
Формат выходных данных
Вывести измененный массив.
входные данные
4
-6 -8 9 8
выходные данные
-6 -8 3 9 8
C/C++
Дан массив из N элементов (N < 1000), причем N - четное. Вставить в середину массива сумму всех элементов.
#include <iostream>
int main() {
long long arr[1000], sum = 0;
int n;
std::cin >> n;
for (int i = 0; i < n; ++i) {
std::cin >> arr[i];
sum += arr[i];
}
for (int i = n; i > n / 2; --i)
arr[i] = arr[i - 1];
arr[n / 2] = sum;
for (int i = 0; i <= n; ++i)
std::cout << arr[i] << ' ';
return 0;
}
P.S. Ещё можно взять массив int, распечатать его половину, потом long long сумму, затем - оставшуюся половину.
int main() {
long long arr[1000], sum = 0;
int n;
std::cin >> n;
for (int i = 0; i < n; ++i) {
std::cin >> arr[i];
sum += arr[i];
}
for (int i = n; i > n / 2; --i)
arr[i] = arr[i - 1];
arr[n / 2] = sum;
for (int i = 0; i <= n; ++i)
std::cout << arr[i] << ' ';
return 0;
}
P.S. Ещё можно взять массив int, распечатать его половину, потом long long сумму, затем - оставшуюся половину.
#include <iostream>
using namespace std;
int main() {
int box[1000];
int n;
cin >> n;
int m = n >> 1;
++n;
int sum = 0;
for (int i = 0; i < n; ++i) {
if (i == m) ++i;
cin >> box[i];
sum += box[i];
}
box[m] = sum;
for (int i = 0; i < n; ++i) cout << box[i] << ' ';
puts("");
}
using namespace std;
int main() {
int box[1000];
int n;
cin >> n;
int m = n >> 1;
++n;
int sum = 0;
for (int i = 0; i < n; ++i) {
if (i == m) ++i;
cin >> box[i];
sum += box[i];
}
box[m] = sum;
for (int i = 0; i < n; ++i) cout << box[i] << ' ';
puts("");
}
#include < iostream > \\убрать пробелы
int sum(int * array, unsigned int size)
{
int s = 0;
for(unsigned int i=0;i < size;i++)
{
s+=array[i];
}
return s;
}
int * add(int * array, unsigned int size, int a)
{
if(size%2==0)
{
int * newArray = new int[size+1];
for(unsigned int i=0; i < size/2;i++)
{
newArray[i] = array[i];
}
newArray[size/2] = a;
for(unsigned int i=size/2+1; i < size+1;i++)
{
newArray[i] = array[i-1];
}
delete [] array;
array = newArray;
}
return array;
}
int main()
{
int N;
std::cin>>N;
if(N%2!=0||N>=1000)
{
return 0;
}
int *array = new int[N];
for(unsigned int i=0; i < N; i++)
{
std::cout << "array[" << i << "] = ";
std::cin>>array[i];
if(std::abs(array[i])>=230)
{
i--;
std::cout << ">= 230, try again" << std::endl;
}
}
array = add(array,N,sum(array,N));
for(unsigned int i=0; i < N+1; i++)
{
std::cout << array[i];
if(i!=N)
{
std::cout <<"\t";
}
}
return 0;
}
int sum(int * array, unsigned int size)
{
int s = 0;
for(unsigned int i=0;i < size;i++)
{
s+=array[i];
}
return s;
}
int * add(int * array, unsigned int size, int a)
{
if(size%2==0)
{
int * newArray = new int[size+1];
for(unsigned int i=0; i < size/2;i++)
{
newArray[i] = array[i];
}
newArray[size/2] = a;
for(unsigned int i=size/2+1; i < size+1;i++)
{
newArray[i] = array[i-1];
}
delete [] array;
array = newArray;
}
return array;
}
int main()
{
int N;
std::cin>>N;
if(N%2!=0||N>=1000)
{
return 0;
}
int *array = new int[N];
for(unsigned int i=0; i < N; i++)
{
std::cout << "array[" << i << "] = ";
std::cin>>array[i];
if(std::abs(array[i])>=230)
{
i--;
std::cout << ">= 230, try again" << std::endl;
}
}
array = add(array,N,sum(array,N));
for(unsigned int i=0; i < N+1; i++)
{
std::cout << array[i];
if(i!=N)
{
std::cout <<"\t";
}
}
return 0;
}
Динамические массивы проходили?
Похожие вопросы
- Даны число N и последовательность из N целых чисел. Найти количество и сумму тех чисел, которые нечетны и положительны.
- В файле дана двухмерная матрица, сформировать одномерный массив длинной N из чётных элементов квадратной матрицы
- С++ создать массив из элементов каждый из которых равен среднеарефметическому четных элементов каждого столбца
- Дан целочисленный массив с количеством элементов п. Сжать массив, выбросив из него каждый второй элемент.
- Даны два числа: n и m. Создайте двумерный массив размером n×m и заполните его в соответствии с примером.
- Задан целочисленный массив размера N. Определить число элементов в массиве кратных 2.
- Как реализовать программу, в которой массив заполняется рандомно, а сумма его элементов всегда будет равна 1? С++
- Если массив из 10 элементов содержит хотя бы один нулевой элемент
- Ввести двумерный массив A(n x m)
- Написать программу на C++. Дан массив записей, содержащий номера телефонов сотрудников учреждения