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

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

Восстановить пароль Регистрация
 
flatra
0 / 0 / 0
Регистрация: 03.11.2012
Сообщений: 343
16.11.2012, 08:15     Сумма элементов массива, расположенных между первым и последним элементом #1
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++ Сумма элементов массива, расположенных между первым и последним отрицательными элементами
Сумму элементов массива, расположенных между первым и последним нулевыми элементами. C++
Сумма элементов массива, расположенных между первым и последним положительным элементом C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
LVV
56 / 56 / 3
Регистрация: 15.02.2010
Сообщений: 239
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
 Аватар для lemegeton
2909 / 1338 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
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
Сообщений: 343
16.11.2012, 09:25  [ТС]     Сумма элементов массива, расположенных между первым и последним элементом #4
а первый и последний элемент
LVV
56 / 56 / 3
Регистрация: 15.02.2010
Сообщений: 239
16.11.2012, 09:28     Сумма элементов массива, расположенных между первым и последним элементом #5
Цитата Сообщение от flatra Посмотреть сообщение
а первый и последний элемент
А первый и последний элемент не должны суммироваться. Они и не суммируются
flatra
0 / 0 / 0
Регистрация: 03.11.2012
Сообщений: 343
16.11.2012, 09:29  [ТС]     Сумма элементов массива, расположенных между первым и последним элементом #6
почему
lemegeton
 Аватар для lemegeton
2909 / 1338 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
16.11.2012, 13:16     Сумма элементов массива, расположенных между первым и последним элементом #7
Цитата Сообщение от flatra Посмотреть сообщение
почему
Очевидно, по заданию.

Цитата Сообщение от flatra Посмотреть сообщение
сама то сумма есть а у меня задание между первым и последним элементом
Приведенный вами в первом посте код считает сумму между первым и последним элементом не включая их.
flatra
0 / 0 / 0
Регистрация: 03.11.2012
Сообщений: 343
16.11.2012, 17:23  [ТС]     Сумма элементов массива, расположенных между первым и последним элементом #8
только вот вопрос какие именно первый и последний элементы
lemegeton
 Аватар для lemegeton
2909 / 1338 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
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
Сообщений: 343
16.11.2012, 20:22  [ТС]     Сумма элементов массива, расположенных между первым и последним элементом #10
тут есть еще слова между положительными элементами
LVV
56 / 56 / 3
Регистрация: 15.02.2010
Сообщений: 239
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
Сообщений: 343
16.11.2012, 20:51  [ТС]     Сумма элементов массива, расположенных между первым и последним элементом #12
мне надо наити первый положительный и последний положительный элемнт
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.11.2012, 21:14     Сумма элементов массива, расположенных между первым и последним элементом
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
LVV
56 / 56 / 3
Регистрация: 15.02.2010
Сообщений: 239
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];
Yandex
Объявления
16.11.2012, 21:14     Сумма элементов массива, расположенных между первым и последним элементом
Ответ Создать тему
Опции темы

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