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

Массив через указатели с 3 условиями

26.10.2017, 15:56. Показов 451. Ответов 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
void f(int a[10])
 
{
    int *x = a;
    int n, S = 1, max = 0;
 
    for (int i = 0; i < 10; i++)
 
    {
        S = S * x[i];
        if (x[i + 1] == 0)
            break;
 
 
    }
 
    for (int i = 0; i < 10; i++)
 
    {
        if (x[i] == 0)
            n = i;
 
    }
 
    for (int i = n; i < 10; i++)
 
    {
        if (x[i] > max)
            max = x[i];
    }
 
    cout << S << endl;
    cout << n << endl;
    cout << max << endl;
 
}
 
int main()
{
    int a[10];
    for (int i = 0; i < 10; i++)
    {
        cin >> a[i];
    }
 
    f(a);
 
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.10.2017, 15:56
Ответы с готовыми решениями:

Как в массив скопировать массив, который заполнен через указатели
Есть два файла допусти. Суть вопроса в том, что находится во втором файле. Как записать? car.h struct car { float massiv; ...

Создать массив указателей на одномерный массив и через указатели присвоить массиву значения
Не могу понять как работают указатели. Объявляю массив, делаю на него указатель. Циклом с клавиатуры заполняю массив. После окончания...

массив через указатели
в общем проблемы начинаются с самого начала... нужен массив с Конкретными числами: -6.3, 0.8, 12, -4, 13, 2.5, 7, 8, -9, 10 в...

1
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
26.10.2017, 16:09
doom88, 1. Окружай код тегами. Легче смотреть, а главное - разговаривать о нем. Умеешь?
2. Совершенно не обязательно выкладывать код с таким множеством бессмысленных пустых строк. Восприятию кода это нисколько не помогает, а только мешает, ввиду его "размазанности" по экрану. Тебе так удобно писать? - Ради Бога. Но выкладывай, немножко думая о читателях.
3. Конечно, не оптимально. Ты уже нашел нулевой элемент. Так на фига этот поиск повторять?
C++
1
2
3
4
5
6
7
8
int n;
for (n = 0; n < 10; n++)
{
S = S * x[n];
if (x[n + 1] == 0)
 break;
}
n++;
Добавлено через 2 минуты
И еще надо задуматься над тем, что будет, если в массиве нулевых элементов нет.
Или нулевой элемент является последним?
Твой код (а теперь уже - наш) в этих случаях ведет себя непредсказуемо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.10.2017, 16:09
Помогаю со студенческими работами здесь

Двумерный массив через указатели
Доброго времени суток! Никак не могу разобраться с двумерными массивами через указатели. Препод дал задание определить номер столбца, в...

Массив массивов через указатели
Магистрат который принимает лабораторные работы дает очень изощренные задачи, он сказал считать файл в динамический двумерный массив array...

Двумерный массив через указатели и его заполнение
Привет, объясните, как создать двумерный массив через указатели и заполнить его с клавиатуры? Т.е. ввести количество строк и столбцов, а...

Запись данных в динамический массив через указатели
Здравствуйте! У меня возникла проблема... Когда я ввожу, например, 10 чисел в дин. массив, цикл while(через который я и хочу организовать...

Передать двумерный массив в функцию через указатели
Добрый день! Необходимо сделать задание: 1. объявить и инициализировать двумерный массив значений. 2. Передать его в функцию для...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
YAFU@home — распределённые вычисления для математики. На CPU
Programma_Boinc 20.01.2026
YAFU@home — распределённые вычисления для математики. На CPU YAFU@home — это BOINC-проект, который занимается факторизацией больших чисел и исследованием aliquot-последовательностей. Звучит. . .
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru