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

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

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

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

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

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

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

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

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

17
585 / 488 / 371
Регистрация: 05.11.2013
Сообщений: 1,265
Записей в блоге: 6
29.11.2013, 16:22 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;
1
141 / 84 / 24
Регистрация: 21.10.2009
Сообщений: 429
29.11.2013, 16:24 3
Ну если у тебя последовательность четная, то просто заведи два цикла, один от 1 до первой половины
второй от половины размера массива до конца и записывай результат сложения в две переменные.
0
1 / 1 / 0
Регистрация: 04.10.2013
Сообщений: 77
29.11.2013, 16:30  [ТС] 4
Цитата Сообщение от mibin Посмотреть сообщение
Ну если у тебя последовательность четная, то просто заведи два цикла, один от 1 до первой половины
второй от половины размера массива до конца и записывай результат сложения в две переменные.
Как мне этот цикл изобразить? просто Я начинающий.
0
141 / 84 / 24
Регистрация: 21.10.2009
Сообщений: 429
29.11.2013, 16:44 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 минут
С созданием массива ты обещал разобраться, но если че спрашивай
0
1 / 1 / 0
Регистрация: 04.10.2013
Сообщений: 77
29.11.2013, 18:23  [ТС] 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;}
Извините, если в чем-то ошибся, то рандомно это так выглядит?
0
141 / 84 / 24
Регистрация: 21.10.2009
Сообщений: 429
29.11.2013, 20:01 7
Вроде похоже на правду, а что, что-то не получилось?
0
1 / 1 / 0
Регистрация: 04.10.2013
Сообщений: 77
29.11.2013, 20:37  [ТС] 8
Не-а.
Mibin, вы не поможете мне весь код написать, если все практически есть?
0
141 / 84 / 24
Регистрация: 21.10.2009
Сообщений: 429
29.11.2013, 20:59 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; 
}
0
1 / 1 / 0
Регистрация: 04.10.2013
Сообщений: 77
30.11.2013, 00:10  [ТС] 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 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 минуты
Тебе в качестве факультативного задания осталось это все вывести только
1
1 / 1 / 0
Регистрация: 04.10.2013
Сообщений: 77
30.11.2013, 21:02  [ТС] 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 минуты
Тебе в качестве факультативного задания осталось это все вывести только
Спасибо тебе огромное.
Действительно, от души.
0
141 / 84 / 24
Регистрация: 21.10.2009
Сообщений: 429
30.11.2013, 21:03 13
Цитата Сообщение от Mistikkx Посмотреть сообщение
Спасибо тебе огромное.
Действительно, от души.
Не за что. Лишь бы в прок пошло
0
1 / 1 / 0
Регистрация: 04.10.2013
Сообщений: 77
02.12.2013, 11:11  [ТС] 14
Цитата Сообщение от mibin Посмотреть сообщение
Не за что. Лишь бы в прок пошло
Я думаю, мы где-то ошибку допустили, ибо программа компилируется, но что-то идет не так.
Сейчас скрин скину.
Как ты думаешь, в чем ошибка?
Миниатюры
Массив содержит 2n чисел. Из суммы первых n его элементов вычесть сумму последних n элементов  
0
25 / 25 / 5
Регистрация: 21.11.2013
Сообщений: 208
02.12.2013, 13:54 15
Если на Си, то раздел не тот. Кстати, если в массиве 2n элементов, то конечно размерность будет четная
0
141 / 84 / 24
Регистрация: 21.10.2009
Сообщений: 429
03.12.2013, 21:00 16
Цитата Сообщение от Mistikkx Посмотреть сообщение
Я думаю, мы где-то ошибку допустили, ибо программа компилируется, но что-то идет не так.
Сейчас скрин скину.
Как ты думаешь, в чем ошибка?
Ошибка скорее всего связана с работой с массивом...скорее всего его как-то иначе объявить надо...надо подумать...
0
1 / 1 / 0
Регистрация: 04.10.2013
Сообщений: 77
05.12.2013, 20:24  [ТС] 17
Цитата Сообщение от mibin Посмотреть сообщение
Ошибка скорее всего связана с работой с массивом...скорее всего его как-то иначе объявить надо...надо подумать...
Интересно, это как?
0
1 / 1 / 0
Регистрация: 04.10.2013
Сообщений: 77
08.12.2013, 19:23  [ТС] 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; 
}
Если его беру вот так, то у меня работает, думаешь, правильно написал?
0
08.12.2013, 19:23
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.12.2013, 19:23
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru