Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
stasonio
0 / 0 / 0
Регистрация: 23.11.2014
Сообщений: 7
1

Найти количество элементов массива, которые меньше, чем все предыдущие

26.11.2014, 22:18. Просмотров 668. Ответов 10
Метки нет (Все метки)

Дан массив n.Нужно найти количество элементов,которые меньше чем все предыдущие.
уже голову сломал,не знаю как делать
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.11.2014, 22:18
Ответы с готовыми решениями:

Найти сумму всех элементов последовательности которые по модулю не меньше, чем 0,001.
Программа не работает, просто ничего не выводит, помогите разобраться в чем дело. #include...

Указатели. Найти количество элементов массива, которые больше 100, меньше 100, равны 100
Разработать функцию,которая находит количество элементов массива,которые больше 100,меньше 100,...

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

Найти номера всех элементов массива, которые равны и меньше k
Помогите пожалуйста исправить ошибки Задан одномерный числовой массив A из n элементов и число k....

Найти номера всех элементов массива, которые равны, больше и меньше k
1.Задан одномерный числовой массив А из n элементов и число k. Найти номера всех элементов массива,...

10
Dennis Ritchie
548 / 140 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
26.11.2014, 22:54 2
Цитата Сообщение от stasonio Посмотреть сообщение
уже голову сломал, не знаю как делать
Для начала нужно корректно сформулировать условие задачи.
0
stasonio
0 / 0 / 0
Регистрация: 23.11.2014
Сообщений: 7
27.11.2014, 00:58  [ТС] 3
Дан числовой массив из n элементов.Подсчитать количество элементов,каждый из которых не больше всех предыдущих.
0
Dennis Ritchie
548 / 140 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
27.11.2014, 01:36 4
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
 
#define LEN 10
 
int main()
{
    int array[LEN];
 
    int i, sum = 0, count = 0;
    for (i = 0; i < LEN; ++i) {
        scanf("%d", &array[i]);
        if (array[i] <= sum && i > 0)
            ++count;
        sum += array[i];
    }
 
    printf("%d\n", count);
    return 0;
}
Если количество элементов равно n, тогда так:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
 
#define LEN 10000
 
int main()
{
    int array[LEN], n;
    int i, sum = 0, count = 0;
    
    scanf("%d", &n);
    for (i = 0; i < n; ++i) {
        scanf("%d", &array[i]);
        if (array[i] <= sum && i > 0)
            ++count;
        sum += array[i];
    }
 
    printf("%d\n", count);
    return 0;
}
1
stasonio
0 / 0 / 0
Регистрация: 23.11.2014
Сообщений: 7
27.11.2014, 01:39  [ТС] 5
Спасибо)только в этом коде где можно вставить свой массив?)
0
Dennis Ritchie
548 / 140 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
27.11.2014, 01:39 6
Неправильно задачу решил, сейчас переделаю.
Цитата Сообщение от stasonio Посмотреть сообщение
Подсчитать количество элементов, каждый из которых не больше всех предыдущих.
Я чего-то подумал, что "... каждый из которых не больше суммы всех предыдущих."
0
stasonio
0 / 0 / 0
Регистрация: 23.11.2014
Сообщений: 7
27.11.2014, 01:40  [ТС] 7
Оно уже есть там)
0
Jewbacabra
Эксперт PHP
3789 / 3126 / 1370
Регистрация: 24.04.2014
Сообщений: 9,503
27.11.2014, 01:59 8
C
1
2
3
4
int k = 0;
for (; k < LEN-1; ++k) {
    if (array[k] < array[k+1]) break;
}
Добавлено через 8 минут
ошибся, так не получится. Значит нужно каждый элемент проверять по отдельности
1
Dennis Ritchie
548 / 140 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
27.11.2014, 02:10 9
Всё, переделал!
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
#include <stdio.h>
 
#define LEN 10000
 
int main()
{
    int array[LEN], n;
    int i, sum = 0, count = 0;
 
    scanf("%d", &n);
    for (i = 0; i < n; ++i)
        scanf("%d", &array[i]);
 
    int j, flag = 1;
    for (i = 0; i < n; ++i) {
        flag = 1;
        for (j = 0; j < i; ++j)
            if (array[i] > array[j] && i > 0) {
                flag = 0;
                break;
            }
        if (flag && i > 0)
            ++count;
    }
 
    printf("%d\n", count);
    return 0;
}
1
stasonio
0 / 0 / 0
Регистрация: 23.11.2014
Сообщений: 7
27.11.2014, 12:00  [ТС] 10
Только 1 вопрос,а почему в условии array[I]>array[j] и еще в коньюнкции с I>0?что это значит?
0
Dennis Ritchie
548 / 140 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
27.11.2014, 12:16 11
Цитата Сообщение от stasonio Посмотреть сообщение
а почему в условии array[i] > array[j]
Если хотя бы один предыдущий элемент больше следующего, то в переменную flag запишется нуль, и вложенный цикл for остановится благодаря break. Дальше пойдёт проверка условия:
C
1
2
if (flag && i > 0)
    ++count;
Если переменная flag не равна нулю, то программа прибавит к счётчику count единицу. А если было хотя бы одно предыдущее число, которое больше проверяющегося числа, то в переменной flag будет содержаться нуль, и счётчик count не изменится.
Цитата Сообщение от stasonio Посмотреть сообщение
и еще в коньюнкции с i > 0? что это значит?
Чтобы не проверять первый элемент массива, т. е. array[0], так как у этого элемента нет предыдущих элементов.
0
27.11.2014, 12:16
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.11.2014, 12:16

Найти номера всех элементов массива, которые равны, больше и меньше k
Всем привет! Пожалуйста, помогите реализовать программу на C++. Задан одномерный числовой массив A...

Найти количество элементов массива, отличающихся от среднего значения не более чем на 3
помогите доделать сама задача: 11. Найти количество элементов массива, отличающихся от среднего ...

Найти все числа палиндромы, которые меньше N
Используя цикл while написать программу: Дано натуральное число N. Найти все числа палиндромы...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru