С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 27.05.2012
Сообщений: 30

массив

27.05.2012, 20:07. Показов 849. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, нужна помощь в решении задачи. Условие: в одномерном массиве состоящем из n элементов, вычислить сумму элементов между первым и последним нулевыми элементами.
Желательно написать готовое решение на С++
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.05.2012, 20:07
Ответы с готовыми решениями:

Массив: Преобразовать массив, прибавив к четным числам, входящим в массив, значение первого элемента.
Есть задача С клавиатуры вводятся элементы целочисленного массива размера N. Преобразовать его, прибавив к четным числам, входящим в...

Дан массив, состоящий из 15 элементов целого типа. Получить новый массив, как разность между элементами исходного массив
Дан массив, состоящий из 15 элементов целого типа. Получить новый массив, как разность между элементами исходного массива и его среднего...

Ввести массив А. В массив В перенести все элементы массива А, стоящие правее максимального элемента, и имеющие нечетный индекс. Массив В отсортировать
Добрый Вечер! Написал первую часть программы по этому заданию"Ввести массив А. В массив В перенести все элементы массива А, стоящие правее...

12
 Аватар для insolent
829 / 353 / 64
Регистрация: 30.01.2009
Сообщений: 1,204
27.05.2012, 20:51
С использованием STL можно было все красиво сделать в пару строк, но думаю, что вам нужно без заумности.
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 <iostream>
 
int main()
{
    int arr[] = { 1, 2, 0, 4, 5, 6, 0, 7, 8, 9, 10, 0, 3, 2, 11, 0, 8, 2, 0, 5, 6, 4 };
    int n = sizeof(arr)/sizeof(arr[0]);
 
    std::cout << "=======ARRAY=======" << std::endl;
    for (int i = 0; i < n; i++)
        std::cout << arr[i] << "  ";
 
    std::cout << std::endl;
 
    int firstZero, lastZero;
 
    for (int i = 0; i < n; i++)
        if ( arr[i] == 0 )
        {
            firstZero = i;
            break;
        }
 
    for (int i = n-1; i > 0; i--)
        if ( arr[i] == 0 )
        {
            lastZero = i;
            break;
        }
 
    int Sum = 0;
    for (int i = firstZero; i < lastZero; i++)
        Sum += arr[i];
 
    std::cout << "Position of the first zero element: " << firstZero << std::endl;
    std::cout << "Position of the last zero element: " << lastZero << std::endl;
    std::cout << "Sum: " << Sum << std::endl;
 
    return 0;
}
1
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
27.05.2012, 21:03
1 цикла хватит за глаза
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
 
int main()
{
    int arr[] = { 1, 2, 0, 4, 5, 6, 0, 7, 8, 9, 10, 0, 3, 2, 11, 0, 8, 2, 0, 5, 6, 4 };
    int sum = 0, tmpsum;
    bool b = false;
    const int n = sizeof(arr) / sizeof(*arr);
    for (int i=0; i < n; i++)
    {
        if(b) tmpsum += arr[i];
        if (arr[i] == 0)
        {
            if(!b) b = true;
            else {sum += tmpsum; tmpsum = 0; }
        }
        std::cout<< arr[i]<< " ";
    }
    std::cout<< "\nSum: "<< sum;
    return 0;
}
0
0 / 0 / 0
Регистрация: 27.05.2012
Сообщений: 30
27.05.2012, 21:08  [ТС]
спасибо, но мне кажется что программа не так считает сумму, хотя я могу и ошибаться...
0
122 / 85 / 16
Регистрация: 14.02.2011
Сообщений: 340
27.05.2012, 21:10
Цитата Сообщение от MrGluck Посмотреть сообщение
const int n = sizeof(arr) / sizeof(*arr)
Цитата Сообщение от insolent Посмотреть сообщение
int n = sizeof(arr)/sizeof(arr[0]);
господа, а не лучше ли писать sizeof(ТИП) из которого сделан массив.
C++
1
2
int arr[] = {}; size = sizeof(arr) / sizeof(int);
char arr[] = {}; size = sizeof(arr) / sizeof(char);
???
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
27.05.2012, 21:12
Цитата Сообщение от Sivrit Посмотреть сообщение
спасибо, но мне кажется что программа не так считает сумму, хотя я могу и ошибаться...
Лично я проверил устным счетом. А это так сложно?

Добавлено через 1 минуту
Цитата Сообщение от instagib Посмотреть сообщение
господа, а не лучше ли писать sizeof(ТИП) из которого сделан массив.
C++
1
2
int arr[] = {}; size = sizeof(arr) / sizeof(int);
char arr[] = {}; size = sizeof(arr) / sizeof(char);
???
А зачем? Как бы первый элемент массива как раз имеет размер нужного типа. Иначе можно вобще писать не sizeof(int), а 4. А так это безопасный вариант.
0
122 / 85 / 16
Регистрация: 14.02.2011
Сообщений: 340
27.05.2012, 21:16
MrGluck, на 32битныйх машинах, указатель вроде как 2 байта. Любой указатель, что на инт что на чар что на структуру, верно?
в случае
C++
1
2
char arr[20];
unsigned int size = sizeof(arr) / sizeof(*arr);
у вас должно получиться 10 элементов. Поправьте меня если я не прав.
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
27.05.2012, 21:18
Цитата Сообщение от instagib Посмотреть сообщение
MrGluck, на 32битныйх машинах, указатель вроде как 2 байта. Любой указатель, что на инт что на чар что на структуру, верно?
в случае
C++
1
2
char arr[20];
unsigned int size = sizeof(arr) / sizeof(*arr);
у вас должно получиться 10 элементов. Поправьте меня если я не прав.
*arr это не указатель, это arr[0] (int)
1
 Аватар для Toshkarik
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
27.05.2012, 22:07
Цитата Сообщение от instagib Посмотреть сообщение
на 32битныйх машинах, указатель вроде как 2 байта
32 битные машины - 32 бита - 32 битные указатели - 32 / 8 == 4. Ну никак не могут они быть 2 байта.
1
0 / 0 / 0
Регистрация: 27.05.2012
Сообщений: 30
28.05.2012, 11:45  [ТС]
помогите реализовать эту функцию через шаблоны
0
 Аватар для Toshkarik
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
28.05.2012, 13:34
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
template< typename T >
T sum( T *array, const int size ) {
   int firstZero = 0,
       lastZero = size - 1,
       sum = 0;
 
   while ( array[ firstZero ] != 0 && firstZero < size )
      firstZero++;
   
   while ( array[ lastZero ] != 0 && lastZero > 0 )
      lastZero--;
 
   for ( int i = firstZero + 1; i < lastZero; i++ )
      sum += array[ i ];
 
   return sum;
}
2
122 / 85 / 16
Регистрация: 14.02.2011
Сообщений: 340
28.05.2012, 21:25
Sivrit, какую функцию, покажи код

//////// блин лаг,

Не по теме:

у меня отобразилось сообщение в другой теме O_o delete pls))))

0
0 / 0 / 0
Регистрация: 27.05.2012
Сообщений: 30
28.05.2012, 22:28  [ТС]
instagib, Уже все готово, всем спасибо за помощь.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.05.2012, 22:28
Помогаю со студенческими работами здесь

Массив: Как скопировать двумерный массив в другой массив?
Как скопировать двумерный массив в другой массив?

Дан массив целых чисел,произвести для него следующие операции: для каждого из чисел ,входящего в массив,указать,сколько раз оно входит в массив...
помогите!!!((( дан массив целых чисел,произвести для него следующие операции: для каждого из чисел ,входящего в массив,указать,сколько...

Файл: Загрузка данных из файла: первый столбец записывался в 1й массив, второй столбец - во 2й массив, а 3й столбец - в 3й массив.
Есть текстовый файл, в нем 3 столбца чисел (число строк заранее неизвестно). Напишите пожалуйста код, чтобы первый столбец записывался в...

с клавиатуры ввести массив,во второй массив записать нечетные элементы из первого
с клавиатуры ввести массив,во второй записать нечетные элеиенты из первого.В третий массив записать четные элементы, стоящие на нечетных...

Массив: найти номера столбцов с положительными элементами и записать их в одномерный массив
ввести двумерный массив I . найти номера столбцов с положительными элементами и записать их в одномерный массив, отобразить его на экране. ...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru