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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
flatra
0 / 0 / 0
Регистрация: 03.11.2012
Сообщений: 356
#1

Сумма элементов массива, расположенных между первым и последним элементом - C++

16.11.2012, 08:15. Просмотров 1069. Ответов 12
Метки нет (Все метки)

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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#include "stdafx.h"
#include <iostream>
#include "conio.h"
#include <stdio.h>
#include "locale.h"
using namespace std;
 
 
 
int main(void)
{
    setlocale(LC_ALL, "Russian");
cout<<"                огибалов дмитрий инбс-11 ";
cout<<"\n В одномерном массиве, состоящем из n вещественных элементов, вычислить:\n";
cout<<"\n1.)минимальный элемент массива\n";
cout<<"\n2.)сумму элементов массива, расположенных между первым и последним положительными элементами.\n";
cout<<"\nПреобразовать массив таким образом, чтобы сначала располагались все элементы, равные нулю, а потом – все остальные.\n ";
 
cout<<"\nВведите размер массива ->\n ";
    
    int min, i, n, sum=0, arr[100]; // arr - массив целых чисел, максимальный размер 100 элементов
     cin >> n;
    
         
 
    for (i = 0; i < n; i++) // ввод массива
      {
          cout<<"Введите элемент # "<<i+1<<endl;
 
      cin >> arr[i];
    }
 
//эхо-контроль
//вывод массива в строчке, элементы через пробелы
 
    min = arr[0];
 
    for (i = 0; i < n; i++)
        if (arr[i] < min)
            min = arr[i];
 
 
 
    for (i = 1; i <n-1; ++i)
        sum += arr[i];
 
    cout << "минимальный элемент массива:" << min << endl; // вывод минимального значения
    cout << "Сумма элементов массива, расположенных между первым и последним элементом(не включая их)" << sum << endl;
    cout << "\nсначала нулевые элементы:\n";
    for (i = 0; i < n; i++)
        if (arr[i]==0) cout <<" "<<arr[i];
    for (i = 0; i < n; i++)
        if (arr[i]!=0) cout <<" "<<arr[i];
    _getch();
    return 0;
}
Добавлено через 52 секунды
сама то сумма есть а у меня задание между первым и последним элементом
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.11.2012, 08:15
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сумма элементов массива, расположенных между первым и последним элементом (C++):

Сумма элементов массива, расположенных между первым и последним положительным элементом - C++
Вычислить сумму элементов массива, расположенных между первым и последним положительными элементами. Вот что получилось... ...

Сумма элементов между первым положительным элементом массива и последним отрицательным - C++
В одномерном целочисленном массиве( элементы массива генерируются случайным образом диапазоне от -100 до 100), подсчитать сумму элементов,...

Сумма элементов массива, расположенных между первым и последним положительными элементами - C++
14.В одномерном массиве, состоящем из n вещественных элементов, вычислить: а) минимальный элемент массива; б) сумму элементов...

Сумма элементов массива, расположенных между первым и последним нулевыми элементами - C++
В одномерном массиве, состоящем из n целых элементов, вычислить: сумму элементов массива, расположенных между первым и последним нулевыми...

Сумма элементов массива, расположенных между первым и последним отрицательными элементами - C++
12.В одномерном массиве, состоящем из n вещественных элементов, вычислить: а) сумму элементов массива с нечетными номерами; б) сумму...

Сумма элементов массива, расположенных между первым и последним отрицательными элементами - C++
Помогите найти ошибку #include &lt;iostream&gt; #include &lt;ctime&gt; using namespace std; int main() { ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
LVV
57 / 57 / 4
Регистрация: 15.02.2010
Сообщений: 249
16.11.2012, 09:02 #2
С суммой то у Вас как раз всё в порядке.
А вот с нулевыми элементами нет.
Нужно преобразовать массив, а не просто вывести сначала нулевые, а потом ненулевые.
Если поядок расположения остальных элементов не важен, то можно так:
for (int i = 0; i < n; i++)
for (int j=i; j<n; j++)
if (arr[j]==0) swap (arr[i],arr[j]);//swap - обмен значениями
//вывод массива
for (int i = 0; i < n; i++)
cout <<" "<<arr[i];

а если порядок важен, то... надо подумать, как обойтись без дополнительного массива...
lemegeton
2923 / 1352 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
16.11.2012, 09:04 #3
Цитата Сообщение от flatra Посмотреть сообщение
сама то сумма есть а у меня задание между первым и последним элементом
Шутите? В коде даже русским языком прокомментировано:
Цитата Сообщение от flatra Посмотреть сообщение
for (i = 1; i <n-1; ++i)
sum += arr[i];
cout << "Сумма элементов массива, расположенных между первым и последним элементом(не включая их)" << sum << endl;
flatra
0 / 0 / 0
Регистрация: 03.11.2012
Сообщений: 356
16.11.2012, 09:25  [ТС] #4
а первый и последний элемент
LVV
57 / 57 / 4
Регистрация: 15.02.2010
Сообщений: 249
16.11.2012, 09:28 #5
Цитата Сообщение от flatra Посмотреть сообщение
а первый и последний элемент
А первый и последний элемент не должны суммироваться. Они и не суммируются
flatra
0 / 0 / 0
Регистрация: 03.11.2012
Сообщений: 356
16.11.2012, 09:29  [ТС] #6
почему
lemegeton
2923 / 1352 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
16.11.2012, 13:16 #7
Цитата Сообщение от flatra Посмотреть сообщение
почему
Очевидно, по заданию.

Цитата Сообщение от flatra Посмотреть сообщение
сама то сумма есть а у меня задание между первым и последним элементом
Приведенный вами в первом посте код считает сумму между первым и последним элементом не включая их.
flatra
0 / 0 / 0
Регистрация: 03.11.2012
Сообщений: 356
16.11.2012, 17:23  [ТС] #8
только вот вопрос какие именно первый и последний элементы
lemegeton
2923 / 1352 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
16.11.2012, 18:14 #9
Цитата Сообщение от flatra Посмотреть сообщение
только вот вопрос какие именно первый и последний элементы

Не по теме:

Are you kidding me?



Рассмотрим, в качестве примера, набор из четырех элементов -- 0, 1, 2, 3.
Допустим, эти элементы нумеруются (иногда говорят "индексируются") по порядку, начиная с нуля.

На первом месте с номером (индексом) 0 стоит элемент со значением 0.
На втором месте с номером (индексом) 1 стоит элемент со значением 1.
На третьем месте номером (индексом) 2 стоит элемент со значением 2.
На четвертом и последнем (индексом) месте под номером 3 стоит элемент со значением 3.

Первым элементом называют элемент с минимальным индексом. В рассматриваемом случае это элемент с индексом 0 и значением 0.
Последним элементом называют элемент последовательности с максимальным индексом. В рассматриваемом случае это элемент с индексом 3 и значением 3.

Таким образом, легко понять, что в приведенном в первом посте коде первым элементом последовательности является arr[0].

С последним элементом несколько сложнее.
Как мы видели ранее, набор из четырех элементов нумеруется от нуля до трех. Несложно убедиться, что набор из пяти элементов будет нумероваться от нуля до четырех, набор из шести элементов -- от нуля до пяти и так далее.

Последний (см. выше) элемент всегда будет иметь индекс, равный общему количеству элементов минус один. В приведенном в первом посте коде общее количество элементов последовательности обозначено за n. Таким образом, последним элементом последовательности является arr[n - 1].

Я надеюсь, что вы имеете в виду что-то другое, но не можете правильно сформулировать вопрос. Попробуйте общаться развернутыми предложениями, так же может помочь изложение задачи в том же виде, в котором она поставлена перед вами.
flatra
0 / 0 / 0
Регистрация: 03.11.2012
Сообщений: 356
16.11.2012, 20:22  [ТС] #10
тут есть еще слова между положительными элементами
LVV
57 / 57 / 4
Регистрация: 15.02.2010
Сообщений: 249
16.11.2012, 20:37 #11
Цитата Сообщение от flatra Посмотреть сообщение
тут есть еще слова между положительными элементами
Это в корне меняет задачу !!!

Добавлено через 12 минут
C++
1
2
3
4
5
6
7
8
9
10
int i1,i2;
 for (i1=0; i1<n; i1++)
     if (arr[i1]>0) break; // определяем индекс i1 первого положительного элемента
 for (i2=n; i2>0; i2--)
     if (arr[i2]>0) break; // определяем индекс i2 последнего положительного элемента
 
  // находим сумму между первым и последним положительным элементом
 int s=0;
 for (int i = i1+1; i < i2-1; i++)
 s+=arr[i];
flatra
0 / 0 / 0
Регистрация: 03.11.2012
Сообщений: 356
16.11.2012, 20:51  [ТС] #12
мне надо наити первый положительный и последний положительный элемнт
LVV
57 / 57 / 4
Регистрация: 15.02.2010
Сообщений: 249
16.11.2012, 21:14 #13
Цитата Сообщение от flatra Посмотреть сообщение
мне надо наити первый положительный и последний положительный элемнт
Ну, так вникайте же в то, что Вам пишут.
C++
1
2
3
4
5
6
int i1,i2;
 for (i1=0; i1<n; i1++)
     if (arr[i1]>0) break; // определяем индекс i1 первого положительного элемента
 for (i2=n; i2>0; i2--)
     if (arr[i2]>0) break; // определяем индекс i2 последнего положительного элемента
 cout << arr[i1] << " " << arr[i2];
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.11.2012, 21:14
Привет! Вот еще темы с ответами:

Найти количество элементов массива, содержащихся между первым и последним максимальным элементом - C++
Здравствуйте! Помогите пожалуйста сделать задачу!!! Дан набор из целых чисел ( числа читаются из файла ). Найти количество...

Найти сумму элементов массива, находящихся между первым и последним отрицательным элементом - C++
В целочисленном массиве из 20 ти элементов, найти сумму элементов, находящихся между первым и последним отрицательным элементом.Массив...

Сумму элементов массива, расположенных между первым и последним нулевыми элементами - C++
Помогите пожалуйста! 1. Задан массив из N действительных чисел. Составьте программу для поиска в этом массиве: Сумму элементов массива,...

сумму элементов массива, расположенных между первым и последним отрицательными элементами - C++
4 В одномерном массиве, состоящем из 20 вещественных элементов, вычислить: сумму элементов массива, расположенных между первым и...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
16.11.2012, 21:14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru