![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 24.12.2022
Сообщений: 4
|
![]()
Найдите сумму элементов массива между двумя первыми нулями. Если двух нулей нет в массиве, выведите ноль. Нужно отредактировать код так, чтобы массив вводился через клавиатуру.
#include <iostream> using namespace std; int main() { int m[]={1,0, 2, 3, 5, 0, 6 }; int i=0, n=sizeof(m)/sizeof(int)-1; 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; } |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,702
|
![]()
Опять этот уже надоевший хитро-ω-ый приём: берёт первый попавшийся исходник, который никаким боком к задаче - и "я же сам пытался!" Надоело!
Последний раз редактировалось digitalis; 26.12.2022 в 11:20. |
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 02.03.2008
Сообщений: 2,504
|
![]()
Ну, хоть понятно теперь, что надо на C++.
А прога-то правильно работает. Осталось вместо Код:
|
![]() |
![]() |
![]() |
#4 |
Новичок
Джуниор
Регистрация: 24.12.2022
Сообщений: 4
|
![]()
type_Oleg, в этом и проблема что код не работает, когда я пробую сделать ввод с клавы. Как правильно оформить нет точного понимания
|
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 02.03.2008
Сообщений: 2,504
|
![]()
Кстати, и у меня тоже. Я не спец в C++.
Как-то так, может быть убрать это Код:
Код:
|
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,702
|
![]()
Правильно работает?
Ну хучь убей - не вижу, где там if (m[i]==0) Вижу только странное сравнение индекса элемента массива с его содержимым. ?? ![]() Последний раз редактировалось digitalis; 26.12.2022 в 21:03. |
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 02.03.2008
Сообщений: 2,504
|
![]()
В Си и Си++ m[i]!=0 то же самое, что просто m[i]. Там нет логических типов, как в Паскале.
Там while(m[i] && i!=n) - то есть пока (m[i] не 0) и (i не равно n) .. Я просто скопировал, вставил в Geany, скомпилировал, - работает. Проверил с неск. наборами данных. Конечно, 100% отсутствие подводных камней - не гарантирую. Признаю, у меня опыт в Си и Си++ небольшой. |
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 26.10.2022
Сообщений: 119
|
![]()
Строго говоря, в стандартном C++ так нельзя, можно только в C (начиная с C99), там это называется «VLA» (variable-length array). В C++ по-хорошему надо так:
Код:
В C++ есть встроенный тип bool уже давным давно. Да и в C завезли заголовочный файл stdbool.h, для того же самого. При этом неявные преобразования чисел и указателей к bool остались, да. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Найдите сумму элементов массива между двумя первыми нулями. Если двух нулей нет в массиве, выведите ноль. | atoxill | Помощь студентам | 12 | 28.12.2022 07:57 |
дан двумерный массив найти сумму элементов массива между первым и последним положительным числом | qqq`` | Общие вопросы Delphi | 7 | 23.10.2017 16:17 |
Вывести сумму чисел, расположенных между последними двумя нулями. Язык Си | Yakoff | Помощь студентам | 6 | 12.11.2012 15:59 |
Вставка нулей в массив. Сумма элементов между нулями. Язык С++ | annka93 | Помощь студентам | 1 | 30.10.2011 19:50 |
Дан одномерный массив. Найдите сумму максимального и последнего элементов массива. Delphi. | buyaka cha | Помощь студентам | 4 | 15.11.2010 13:46 |