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

Массив содержит 2n чисел. Из суммы первых n его элементов вычесть сумму последних n элементов

29.11.2013, 16:12. Показов 6740. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Алгоритм примерно такой:
Создать и указать массив. Допустим человек вводит число 10.
Значения указываются рандомно. Мне нужно из первых сложенных между собой значений отнять остальные 5 значений тоже сложенных между собой в самом массиве.И ответ вывести на экран.
Задать массив и указать, чтобы все значения рандомно были, Я разберусь.

Проблемы в том, как мне сделать так, чтобы от какой-то последовательности сначала сложить первую половину, потом сложить вторую половину, и чтобы от первой половины отнять 2-ю.
И все это запилить на языке СИ.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.11.2013, 16:12
Ответы с готовыми решениями:

Вычесть из суммы первых k элементов массива у сумму последних k его элементов
Элементы вещественного одномерного динамического массива х размером n > 20 сгенерированы датчиком псевдослучайных чисел в диапазоне ....

Из суммы первых n его элементов вычесть сумму последних n элементов
Массив содержит 2n чисел. Из суммы первых n его элементов вычесть сумму последних n элементов

Найти сумму первых и последних элементов массива.Значение большей суммы вывести на экран
задан массив из элементов:21,31,47,13,1,2,3,4,100,15.Найти сумму первых и последних элементов массива.Значение большей суммы вывести на...

17
 Аватар для ПерС
587 / 490 / 371
Регистрация: 05.11.2013
Сообщений: 1,271
Записей в блоге: 6
29.11.2013, 16:22
C++
1
2
3
4
5
float s1=0,s2=0;
for (int i=0; i<n/2; i++) {
 s1+=a[i]; s2+=a[i+n/2];
}
float otvet=s1-s2;
1
141 / 84 / 24
Регистрация: 21.10.2009
Сообщений: 429
29.11.2013, 16:24
Ну если у тебя последовательность четная, то просто заведи два цикла, один от 1 до первой половины
второй от половины размера массива до конца и записывай результат сложения в две переменные.
0
1 / 1 / 0
Регистрация: 04.10.2013
Сообщений: 77
29.11.2013, 16:30  [ТС]
Цитата Сообщение от mibin Посмотреть сообщение
Ну если у тебя последовательность четная, то просто заведи два цикла, один от 1 до первой половины
второй от половины размера массива до конца и записывай результат сложения в две переменные.
Как мне этот цикл изобразить? просто Я начинающий.
0
141 / 84 / 24
Регистрация: 21.10.2009
Сообщений: 429
29.11.2013, 16:44
Цитата Сообщение от Mistikkx Посмотреть сообщение
Как мне этот цикл изобразить? просто Я начинающий.
А тебе его уже изобразили выше, единственное, если обучаетесь я бы его на два разбил:
C++
1
2
3
4
5
6
7
8
9
10
float s1=0, s2=0;
for (int i=0; i<n/2; i++) {
    s1 += a[i];
}
 
for (int i=n/2; i<n; i++) {
    s2 += a[i];
}
 
float otvet = s1 - s2;
а так все тоже самое, что написал Вам ПерС

Добавлено через 6 минут
С созданием массива ты обещал разобраться, но если че спрашивай
0
1 / 1 / 0
Регистрация: 04.10.2013
Сообщений: 77
29.11.2013, 18:23  [ТС]
Цитата Сообщение от mibin Посмотреть сообщение
А тебе его уже изобразили выше, единственное, если обучаетесь я бы его на два разбил:
C++
1
2
3
4
5
6
7
8
9
10
float s1=0, s2=0;
for (int i=0; i<n/2; i++) {
    s1 += a[i];
}
 
for (int i=n/2; i<n; i++) {
    s2 += a[i];
}
 
float otvet = s1 - s2;
а так все тоже самое, что написал Вам ПерС

Добавлено через 6 минут
С созданием массива ты обещал разобраться, но если че спрашивай
C
1
2
3
int a[100],i;
    for(i=0;i<100;i++)
    {a[i]=rand()%100 -50;}
Извините, если в чем-то ошибся, то рандомно это так выглядит?
0
141 / 84 / 24
Регистрация: 21.10.2009
Сообщений: 429
29.11.2013, 20:01
Вроде похоже на правду, а что, что-то не получилось?
0
1 / 1 / 0
Регистрация: 04.10.2013
Сообщений: 77
29.11.2013, 20:37  [ТС]
Не-а.
Mibin, вы не поможете мне весь код написать, если все практически есть?
0
141 / 84 / 24
Регистрация: 21.10.2009
Сообщений: 429
29.11.2013, 20:59
Ну вот примерно так...писал без компилятора...поэтому...отладить самому придется

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
#include <stdio.h>
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
int main()
{
  int n;
  
  cout << "Write massive count: ";
  cin >> n;
  //n = rand();
  while (n%2 != 0) //n = rand();
    cin >> n;
  
  cout << endl;
  
  int m[n];
  
  for (int i = 0; i < n; i++) {
      m[i] = rand();
  }
  
  int sum1 = 0;
  int sum2 = 0;
  
  for (int i = 0; i < n/2; i++) {
      sum1 = m[i];
      sum2 = m[i+n/2];
  }
  
  cout << "sum1 = " << sum1 << endl;
  cout << "sum2 = " << sum2 << endl;
  
  cout << "sum1 - sum2 = " << sum1 - sum2 << endl;
 
  return 0; 
}
0
1 / 1 / 0
Регистрация: 04.10.2013
Сообщений: 77
30.11.2013, 00:10  [ТС]
Цитата Сообщение от mibin Посмотреть сообщение
Ну вот примерно так...писал без компилятора...поэтому...отладить самому придется

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
#include <stdio.h>
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
int main()
{
  int n;
  
  cout << "Write massive count: ";
  cin >> n;
  //n = rand();
  while (n%2 != 0) //n = rand();
    cin >> n;
  
  cout << endl;
  
  int m[n];
  
  for (int i = 0; i < n; i++) {
      m[i] = rand();
  }
  
  int sum1 = 0;
  int sum2 = 0;
  
  for (int i = 0; i < n/2; i++) {
      sum1 = m[i];
      sum2 = m[i+n/2];
  }
  
  cout << "sum1 = " << sum1 << endl;
  cout << "sum2 = " << sum2 << endl;
  
  cout << "sum1 - sum2 = " << sum1 - sum2 << endl;
 
  return 0; 
}
Это С++, проблема в том, что все это должно быть на Си, как было написано выше.
Я про циклы и ввод массива.
Но все равно спасибо огромное, что так написали.
0
141 / 84 / 24
Регистрация: 21.10.2009
Сообщений: 429
30.11.2013, 11:46
Извини, пожалуйста, вечером запарился малек...вот новый код

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
#include <stdio.h>
 
 
int main()
{
  int n;
  int i;
  
   printf("Write massive count:");
   scanf("%d", &n);
 
  while (n%2 != 0) { 
    //n = rand(10);
    scanf("%d", &n);    
    printf("/n");
  }
  
  printf("/n");
  
  int m[n];
  
  for (i = 0; i < n; i++) {
      m[i] = rand();
  }
  
  int sum1 = 0;
  int sum2 = 0;
  
  for (i = 0; i < n/2; i++) {
      sum1 = m[i];
      sum2 = m[i+n/2];
  }
}
Добавлено через 3 минуты
Тебе в качестве факультативного задания осталось это все вывести только
1
1 / 1 / 0
Регистрация: 04.10.2013
Сообщений: 77
30.11.2013, 21:02  [ТС]
Цитата Сообщение от mibin Посмотреть сообщение
Извини, пожалуйста, вечером запарился малек...вот новый код

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
#include <stdio.h>
 
 
int main()
{
  int n;
  int i;
  
   printf("Write massive count:");
   scanf("%d", &n);
 
  while (n%2 != 0) { 
    //n = rand(10);
    scanf("%d", &n);    
    printf("/n");
  }
  
  printf("/n");
  
  int m[n];
  
  for (i = 0; i < n; i++) {
      m[i] = rand();
  }
  
  int sum1 = 0;
  int sum2 = 0;
  
  for (i = 0; i < n/2; i++) {
      sum1 = m[i];
      sum2 = m[i+n/2];
  }
}
Добавлено через 3 минуты
Тебе в качестве факультативного задания осталось это все вывести только
Спасибо тебе огромное.
Действительно, от души.
0
141 / 84 / 24
Регистрация: 21.10.2009
Сообщений: 429
30.11.2013, 21:03
Цитата Сообщение от Mistikkx Посмотреть сообщение
Спасибо тебе огромное.
Действительно, от души.
Не за что. Лишь бы в прок пошло
0
1 / 1 / 0
Регистрация: 04.10.2013
Сообщений: 77
02.12.2013, 11:11  [ТС]
Цитата Сообщение от mibin Посмотреть сообщение
Не за что. Лишь бы в прок пошло
Я думаю, мы где-то ошибку допустили, ибо программа компилируется, но что-то идет не так.
Сейчас скрин скину.
Как ты думаешь, в чем ошибка?
Миниатюры
Массив содержит 2n чисел. Из суммы первых n его элементов вычесть сумму последних n элементов  
0
25 / 25 / 5
Регистрация: 21.11.2013
Сообщений: 208
02.12.2013, 13:54
Если на Си, то раздел не тот. Кстати, если в массиве 2n элементов, то конечно размерность будет четная
0
141 / 84 / 24
Регистрация: 21.10.2009
Сообщений: 429
03.12.2013, 21:00
Цитата Сообщение от Mistikkx Посмотреть сообщение
Я думаю, мы где-то ошибку допустили, ибо программа компилируется, но что-то идет не так.
Сейчас скрин скину.
Как ты думаешь, в чем ошибка?
Ошибка скорее всего связана с работой с массивом...скорее всего его как-то иначе объявить надо...надо подумать...
0
1 / 1 / 0
Регистрация: 04.10.2013
Сообщений: 77
05.12.2013, 20:24  [ТС]
Цитата Сообщение от mibin Посмотреть сообщение
Ошибка скорее всего связана с работой с массивом...скорее всего его как-то иначе объявить надо...надо подумать...
Интересно, это как?
0
1 / 1 / 0
Регистрация: 04.10.2013
Сообщений: 77
08.12.2013, 19:23  [ТС]
Цитата Сообщение от mibin Посмотреть сообщение
Ошибка скорее всего связана с работой с массивом...скорее всего его как-то иначе объявить надо...надо подумать...
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
#include <stdio.h>
#include <cstdlib>
#include <iostream>
int main()
{
  int n,D;
  
  printf ("Write massive count:");
  scanf ("%d",&n);
  //n = rand();
  while (n%2 != 0) //n = rand();
      scanf ("%d",&n);
      printf ("\n");
   int m[n];
  
  for (int i = 0; i < n; i++) {
      m[i] = rand();
  }
  
  int sum1 = 0;
  int sum2 = 0;
  
  for (int i = 0; i < n/2; i++) {
      sum1 = m[i];
      sum2 = m[i+n/2];
  } 
  printf ("sum1=%d\n",sum2); 
  printf ("sum2=%d\n",sum1); 
  D=sum1-sum2; 
  printf ("sum1-sum2=%d\n",D);
 
  return 0; 
}
Если его беру вот так, то у меня работает, думаешь, правильно написал?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.12.2013, 19:23
Помогаю со студенческими работами здесь

Создать массив из первых ста целых чисел и вычислить сумму всех его элементов
1-Написать программу с использованием массивов: Создать массив из первых ста целых чисел и вычислить сумму всех его элементов 2-Дано...

К произведению первых 5 чисел прибавить сумму 10 последних элементов массива
Дан массив и 12 целых чисел. К произведению первых 5 чисел прибавить сумму 10 последних элементов массива.

Если сумма первых 15 элементов вектора больше суммы последних 15 элементов, сформировать матрицу
Дан вектор А. Если сумма первых 15 элементов вектора больше суммы последних 15 элементов, то из вектора A сформировать матрицу B и затем...

Создать массив, элемент Х которого содержит сумму Х первых элементов другого массива
Вот как я это пытался сделать, но компилятор ругается и ничего не получается: let numbers = let partialSumma = yield...

Отсортировать целочисленный массив по возрастанию суммы двух последних цифр в записи его элементов
Отсортировать целочисленный массив по возрастанию суммы двух последних цифр в записи его элементов


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru