Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
Mistikkx
1 / 1 / 0
Регистрация: 04.10.2013
Сообщений: 77
29.11.2013, 16:12     Массив содержит 2n чисел. Из суммы первых n его элементов вычесть сумму последних n элементов #1
Алгоритм примерно такой:
Создать и указать массив. Допустим человек вводит число 10.
Значения указываются рандомно. Мне нужно из первых сложенных между собой значений отнять остальные 5 значений тоже сложенных между собой в самом массиве.И ответ вывести на экран.
Задать массив и указать, чтобы все значения рандомно были, Я разберусь.

Проблемы в том, как мне сделать так, чтобы от какой-то последовательности сначала сложить первую половину, потом сложить вторую половину, и чтобы от первой половины отнять 2-ю.
И все это запилить на языке СИ.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.11.2013, 16:12     Массив содержит 2n чисел. Из суммы первых n его элементов вычесть сумму последних n элементов
Посмотрите здесь:

C++ В массиве A из 20 элементов определить наибольшие из первых десяти элементов и последних десяти элементов и поменять их местами.
C++ Заполнить массив из 10 целых чисел с клавиатуры и вывести все его элементы и сумму элементов,оканчивающиеся нулем.
C++ С++ Отсортировать целочисленный массив по возрастанию суммы двух последних цифр в записи его элементов
В массиве определить наибольшие из первых десяти элементов и последних десяти элементов и поменять их местами C++
8. Найти среднее арифметическое элементов каждой строки матрицы Q(l,m) и вычесть его из элементов этой строки C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ПерС
366 / 282 / 84
Регистрация: 05.11.2013
Сообщений: 806
Записей в блоге: 5
Завершенные тесты: 1
29.11.2013, 16:22     Массив содержит 2n чисел. Из суммы первых n его элементов вычесть сумму последних n элементов #2
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;
mibin
49 / 49 / 4
Регистрация: 21.10.2009
Сообщений: 272
29.11.2013, 16:24     Массив содержит 2n чисел. Из суммы первых n его элементов вычесть сумму последних n элементов #3
Ну если у тебя последовательность четная, то просто заведи два цикла, один от 1 до первой половины
второй от половины размера массива до конца и записывай результат сложения в две переменные.
Mistikkx
1 / 1 / 0
Регистрация: 04.10.2013
Сообщений: 77
29.11.2013, 16:30  [ТС]     Массив содержит 2n чисел. Из суммы первых n его элементов вычесть сумму последних n элементов #4
Цитата Сообщение от mibin Посмотреть сообщение
Ну если у тебя последовательность четная, то просто заведи два цикла, один от 1 до первой половины
второй от половины размера массива до конца и записывай результат сложения в две переменные.
Как мне этот цикл изобразить? просто Я начинающий.
mibin
49 / 49 / 4
Регистрация: 21.10.2009
Сообщений: 272
29.11.2013, 16:44     Массив содержит 2n чисел. Из суммы первых n его элементов вычесть сумму последних n элементов #5
Цитата Сообщение от 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 минут
С созданием массива ты обещал разобраться, но если че спрашивай
Mistikkx
1 / 1 / 0
Регистрация: 04.10.2013
Сообщений: 77
29.11.2013, 18:23  [ТС]     Массив содержит 2n чисел. Из суммы первых n его элементов вычесть сумму последних n элементов #6
Цитата Сообщение от 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;}
Извините, если в чем-то ошибся, то рандомно это так выглядит?
mibin
49 / 49 / 4
Регистрация: 21.10.2009
Сообщений: 272
29.11.2013, 20:01     Массив содержит 2n чисел. Из суммы первых n его элементов вычесть сумму последних n элементов #7
Вроде похоже на правду, а что, что-то не получилось?
Mistikkx
1 / 1 / 0
Регистрация: 04.10.2013
Сообщений: 77
29.11.2013, 20:37  [ТС]     Массив содержит 2n чисел. Из суммы первых n его элементов вычесть сумму последних n элементов #8
Не-а.
Mibin, вы не поможете мне весь код написать, если все практически есть?
mibin
49 / 49 / 4
Регистрация: 21.10.2009
Сообщений: 272
29.11.2013, 20:59     Массив содержит 2n чисел. Из суммы первых n его элементов вычесть сумму последних n элементов #9
Ну вот примерно так...писал без компилятора...поэтому...отладить самому придется

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; 
}
Mistikkx
1 / 1 / 0
Регистрация: 04.10.2013
Сообщений: 77
30.11.2013, 00:10  [ТС]     Массив содержит 2n чисел. Из суммы первых n его элементов вычесть сумму последних n элементов #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; 
}
Это С++, проблема в том, что все это должно быть на Си, как было написано выше.
Я про циклы и ввод массива.
Но все равно спасибо огромное, что так написали.
mibin
49 / 49 / 4
Регистрация: 21.10.2009
Сообщений: 272
30.11.2013, 11:46     Массив содержит 2n чисел. Из суммы первых n его элементов вычесть сумму последних n элементов #11
Извини, пожалуйста, вечером запарился малек...вот новый код

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 минуты
Тебе в качестве факультативного задания осталось это все вывести только
Mistikkx
1 / 1 / 0
Регистрация: 04.10.2013
Сообщений: 77
30.11.2013, 21:02  [ТС]     Массив содержит 2n чисел. Из суммы первых n его элементов вычесть сумму последних n элементов #12
Цитата Сообщение от 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 минуты
Тебе в качестве факультативного задания осталось это все вывести только
Спасибо тебе огромное.
Действительно, от души.
mibin
49 / 49 / 4
Регистрация: 21.10.2009
Сообщений: 272
30.11.2013, 21:03     Массив содержит 2n чисел. Из суммы первых n его элементов вычесть сумму последних n элементов #13
Цитата Сообщение от Mistikkx Посмотреть сообщение
Спасибо тебе огромное.
Действительно, от души.
Не за что. Лишь бы в прок пошло
Mistikkx
1 / 1 / 0
Регистрация: 04.10.2013
Сообщений: 77
02.12.2013, 11:11  [ТС]     Массив содержит 2n чисел. Из суммы первых n его элементов вычесть сумму последних n элементов #14
Цитата Сообщение от mibin Посмотреть сообщение
Не за что. Лишь бы в прок пошло
Я думаю, мы где-то ошибку допустили, ибо программа компилируется, но что-то идет не так.
Сейчас скрин скину.
Как ты думаешь, в чем ошибка?
Миниатюры
Массив содержит 2n чисел. Из суммы первых n его элементов вычесть сумму последних n элементов  
max_besheniy
25 / 25 / 1
Регистрация: 21.11.2013
Сообщений: 208
02.12.2013, 13:54     Массив содержит 2n чисел. Из суммы первых n его элементов вычесть сумму последних n элементов #15
Если на Си, то раздел не тот. Кстати, если в массиве 2n элементов, то конечно размерность будет четная
mibin
49 / 49 / 4
Регистрация: 21.10.2009
Сообщений: 272
03.12.2013, 21:00     Массив содержит 2n чисел. Из суммы первых n его элементов вычесть сумму последних n элементов #16
Цитата Сообщение от Mistikkx Посмотреть сообщение
Я думаю, мы где-то ошибку допустили, ибо программа компилируется, но что-то идет не так.
Сейчас скрин скину.
Как ты думаешь, в чем ошибка?
Ошибка скорее всего связана с работой с массивом...скорее всего его как-то иначе объявить надо...надо подумать...
Mistikkx
1 / 1 / 0
Регистрация: 04.10.2013
Сообщений: 77
05.12.2013, 20:24  [ТС]     Массив содержит 2n чисел. Из суммы первых n его элементов вычесть сумму последних n элементов #17
Цитата Сообщение от mibin Посмотреть сообщение
Ошибка скорее всего связана с работой с массивом...скорее всего его как-то иначе объявить надо...надо подумать...
Интересно, это как?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.12.2013, 19:23     Массив содержит 2n чисел. Из суммы первых n его элементов вычесть сумму последних n элементов
Еще ссылки по теме:

Суммы первых и последних элементов каждого массива записать в новый бинарный файл C++
C++ Написать программу ввода в массив 6x5 элементов чисел и вычисления суммы элементов полученного массива

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

Или воспользуйтесь поиском по форуму:
Mistikkx
1 / 1 / 0
Регистрация: 04.10.2013
Сообщений: 77
08.12.2013, 19:23  [ТС]     Массив содержит 2n чисел. Из суммы первых n его элементов вычесть сумму последних n элементов #18
Цитата Сообщение от 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; 
}
Если его беру вот так, то у меня работает, думаешь, правильно написал?
Yandex
Объявления
08.12.2013, 19:23     Массив содержит 2n чисел. Из суммы первых n его элементов вычесть сумму последних n элементов
Ответ Создать тему
Опции темы

Текущее время: 13:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru