Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.12.2022, 12:00   #1
atoxill
Новичок
Джуниор
 
Регистрация: 24.12.2022
Сообщений: 4
По умолчанию Найдите сумму элементов массива между двумя первыми нулями. Если двух нулей нет в массиве, выведите ноль.

Найдите сумму элементов массива между двумя первыми нулями. Если двух нулей нет в массиве, выведите ноль. Массив вводиться через клавиатуру.
atoxill вне форума Ответить с цитированием
Старый 24.12.2022, 15:20   #2
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

[QUOTE=atoxill;1855347]Найдите сумму элементов массива между двумя первыми нулями. Если двух нулей нет в массиве, выведите ноль. /QUOTE]
0
type_Oleg вне форума Ответить с цитированием
Старый 24.12.2022, 15:21   #3
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Цитата:
Сообщение от atoxill Посмотреть сообщение
Если двух нулей нет в массиве, выведите ноль
0
В моем массиве нет нулей
type_Oleg вне форума Ответить с цитированием
Старый 24.12.2022, 15:48   #4
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,550
По умолчанию

Цитата:
Сообщение от atoxill Посмотреть сообщение
Найдите сумму элементов массива между двумя первыми нулями. Если двух нулей нет в массиве, выведите ноль. Массив вводиться через клавиатуру.
Сам-то задание понимаешь? Я, например - нет. что значит
Цитата:
между двумя первыми нулями
?
Приведи пример массива - будет решение.
digitalis на форуме Ответить с цитированием
Старый 24.12.2022, 17:15   #5
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Цитата:
Сообщение от digitalis Посмотреть сообщение
Сам-то задание понимаешь?
Нет, задание-то понятно. Например, если массив 1,0,4,-5,7,0,1,0,4 ..
то ответ = 4-5+7 = 6
Проблема, что ТС не знает, что существуют разные языки программирования. Раз не указал.
type_Oleg вне форума Ответить с цитированием
Старый 24.12.2022, 18:26   #6
сфинкс
Форумчанин
 
Аватар для сфинкс
 
Регистрация: 17.06.2012
Сообщений: 957
По умолчанию

Учитывая ввод с клавиатуры неуважение пользователя:
программа на языке высочайшего уровня qbasic qb64
сама вводит данные в количестве n сразу исследуя

Код:
n = 9: Dim d(n): Randomize Timer ' noli.bas

For i = 1 To n
    d(i) = Int(Rnd * 3)
    Print i; " "; d(i)
    If b <> 0 Then 5
    If d(i) = 0 Then If b = 0 Then If a = 0 Then a = i: GoTo 5
    If d(i) = 0 Then If a <> 0 Then b = i
5 Next

Print: Print a, b: Print
If b = 0 Then Print "OTBET 0": End

For i = a To b
    s = s + d(i)
Next
Print s
Результат:

1 1
2 1
3 2
4 2
5 0
6 2
7 2
8 1
9 0

5 9

5

или напишет "OTBET 0"

Логика мудрёная зато работает
и чтобы уйти от перехода гото нужен флаг условий
что усложняет да и неизвестно ответит ли спросивший

На другие языки переделываем сами
Случайные и Массивы https://programmersforum.ru/showthread.php?t=344371 Учим C# & basic & excel & python https://programmersforum.ru/showthre...=327446&page=5 ничего нерекомендую

Последний раз редактировалось сфинкс; 25.12.2022 в 05:10.
сфинкс вне форума Ответить с цитированием
Старый 25.12.2022, 11:01   #7
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,550
По умолчанию

Цитата:
Сообщение от type_Oleg Посмотреть сообщение
Проблема, что ТС не знает, что существуют разные языки программирования.
Наверное, требуется какой-нибудь экзотический. Например, ассемблер для арифмометра "Феликс"
digitalis на форуме Ответить с цитированием
Старый 26.12.2022, 19:39   #8
atoxill
Новичок
Джуниор
 
Регистрация: 24.12.2022
Сообщений: 4
По умолчанию

digitalis,
Пример массива --- 1,0, 2, 3, 5, 0, 6
а вывести должен 10, так как 2+3+5 = 10
код на языке с ++

у меня есть примерное решение, но код не работает
#include <iostream>
using namespace std;

int main() {
int n,i;
cin >> n; // вводим размерность массива
int m[n];
for (int i = 0; i < n; i++) cin >> m[i]; // вводим сам массив
i =0;

int s=0;

while(m[i] && i!=n)i++;
if(i==n){
cout<<0;
return 0;
}
while(m[++i] && i!=n)s+=m[i];
if(m[n] && i==n){
cout<<0;
return 0;
}
cout<<s;
return 0;
}
atoxill вне форума Ответить с цитированием
Старый 26.12.2022, 20:25   #9
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Цитата:
Сообщение от atoxill Посмотреть сообщение
но код не работает
Работает.
Зачем врать. И зачем множить тему - https://www.programmersforum.ru/showthread.php?t=344695
И научитесь хотя бы оформлять код тегами code Хотя, боюсь, у вас и теги не работают..
Изображения
Тип файла: png code.PNG (3.7 Кб, 16 просмотров)
type_Oleg вне форума Ответить с цитированием
Старый 26.12.2022, 20:28   #10
jillitil
Форумчанин
 
Аватар для jillitil
 
Регистрация: 17.10.2018
Сообщений: 184
По умолчанию

За ввод с клавиатуры позаботитесь сами.
Код:
int main(int argc, char* argv[])
{
	const int max  = 10;
	int	m[max] = {-10, 1, 2, 0, 4, 5, 6, 0, 8, 9};
	int	First, Second, i, Sum = 0;

	for (First = 0; First < max && m[First] != 0 ; First++);		// Ищем первый ноль
	for (Second = ++First; Second < max && m[Second] != 0 ; Second++);	// Ищем второй ноль и сдвинули "первый" на след. элемент отличный от найденого ноля
	if ((First < max) && (Second-- < max))					// Проверяем что есть два ноля и корректируем вторую позицию на пред элем., а не ноль.
	   for (i = First; i <= Second; i++)                                    // Складываем элементы после и перед нолём.
	     Sum += m[i];


	printf("Sum = %d. \n First  m[%d] == %d \n Second m[%d] == %d \n", Sum, First, m[First], Second, m[Second]);
	return 0;
}
jillitil вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дано целое число N и набор из N целых чисел, содержащий по крайней мере два нуля. Вывести сумму чисел из данного набора, расположенных между последними двумя нулями h1p6x Общие вопросы C/C++ 3 29.11.2019 11:39
Вывести сумму чисел, расположенных между последними двумя нулями. Язык Си Yakoff Помощь студентам 6 12.11.2012 15:59
Вставка нулей в массив. Сумма элементов между нулями. Язык С++ annka93 Помощь студентам 1 30.10.2011 19:50
Дан одномерный массив. Найдите сумму максимального и последнего элементов массива. Delphi. buyaka cha Помощь студентам 4 15.11.2010 13:46
В одномерном массиве, состоящем из n вещественных элементов, вычислить сумму элементов массива HazelHen Общие вопросы C/C++ 2 29.03.2009 15:16