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

Вывести те элементы в наборе, которые меньше своего левого соседа, и количество K таких элементов

15.09.2014, 17:36. Просмотров 1025. Ответов 10
Метки нет (Все метки)

Всем привет! Не могу никак понять, как сделать данные задания. Был бы очень благодарен за помощь.

1. Дано целое число N (> 1) и набор из N целых чисел. Вывести те элементы в наборе, которые меньше своего левого соседа, и количество K таких элементов.

Если кому не сложно, приписывайте коменты, чтобы я понимал что там делается, т.к. я ещё новичек к СИшке.
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.09.2014, 17:36
Ответы с готовыми решениями:

Вывести те элементы в наборе, которые меньше своего левого соседа, и количество К таких элементов
используя while. Дано число А(>1). Вывести наибольшее из целых чисел К, для...

Найти количество таких элементов последовательности, которые имеют в своем составе цифру 5
Пусть имеется последовательность произвольных целых ненулевых чисел,...

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

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

Вывести массив B из девяти элементов, определить количество элементов, значение которых меньше 10
Вывести массив B из девяти элементов, определить количество элементов, значение...

10
Olinapopa
0 / 0 / 1
Регистрация: 09.09.2014
Сообщений: 7
15.09.2014, 19:45 2
1.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void Sort(int N,int Array[N]){
    if(N>1){
    for(int i=0;i<=N;i++)
        if(Array[i]>Array[i+1])
             printf("%d\n",Array[i+1]);
    }
    else printf("Error");
}
 
int main(int argc, const char * argv[])
{
    int Array[5]={1,3,2,6,8};
    Sort(5, Array);
}
0
TheAlexLag
0 / 0 / 0
Регистрация: 23.10.2013
Сообщений: 22
15.09.2014, 22:26  [ТС] 3
а можно подробно описать, у меня не пашет...
0
Миниатюры
Вывести те элементы в наборе, которые меньше своего левого соседа, и количество K таких элементов  
Olinapopa
0 / 0 / 1
Регистрация: 09.09.2014
Сообщений: 7
16.09.2014, 11:02 4
Не нужно void main(), функция далее уже определена
0
TheAlexLag
0 / 0 / 0
Регистрация: 23.10.2013
Сообщений: 22
16.09.2014, 12:35  [ТС] 5
Дак, и так не работает.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
#include <conio.h>
void Sort(int N,int Array[N]){
    if(N>1){
    for(int i=0;i<=N;i++)
        if(Array[i]>Array[i+1])
             printf("%d\n",Array[i+1]);
    }
    else printf("Error");
}
 
int main(int argc, const char * argv[])
{
    int Array[5]={1,3,2,6,8};
    Sort(5, Array);
 
getch();
return 0;   
 }
http://tnkscr.net/fKs7EO.jpg
0
Vtulhu
423 / 377 / 200
Регистрация: 12.08.2011
Сообщений: 1,610
17.09.2014, 17:12 6
Цитата Сообщение от TheAlexLag Посмотреть сообщение
Дано целое число N (> 1) и набор из N целых чисел. Вывести те элементы в наборе, которые меньше своего левого соседа, и количество K таких элементов.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
 
#define N 10
 
int main(void)
{
    const int array[N] = { 1, 9, 2, 0, 4, 3, 8, 7, 5, 6 };
 
    int k = 0;
 
    int i;
    for( i = 2; i < N; ++i ) {
        if( array[i] < array[i - 1] ) {
            printf("%d ", array[i]);
            ++k;
        }
    }
 
    printf("\n%d\n", k);
    return 0;
}
0
TheAlexLag
0 / 0 / 0
Регистрация: 23.10.2013
Сообщений: 22
20.09.2014, 13:29  [ТС] 7
работает, но нужно чтобы я вводил N с клавиатуры...а не стандартно, было одно и тоже, это можно сделать?
0
Praud
7 / 7 / 9
Регистрация: 25.02.2013
Сообщений: 237
20.09.2014, 15:31 8
C
1
2
 int N;
scanf("%d", &N);
0
Vtulhu
423 / 377 / 200
Регистрация: 12.08.2011
Сообщений: 1,610
20.09.2014, 16:32 9
Лучший ответ Сообщение было отмечено TheAlexLag как решение

Решение

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
#include <stdio.h>      // puts, printf
#include <stdlib.h>     // malloc, free
 
int main(void)
{
    int n;
    puts("Input n:");
    scanf("%d", &n);
    if( n <= 0 ) { return 1; }
 
    int* array = malloc(sizeof(int) * n);
    int i;
    for( i = 0; i < n; ++i ) {
        printf("Input element %d: ", i);
        scanf("%d", &array[i]);
    }
 
    int k = 0;
    puts("Elements:");
    for( i = 1; i < n; ++i ) {
        if( array[i] < array[i - 1] ) {
            printf("%d ", array[i]);
            ++k;
        }
    }
 
    printf("\nNumber of elements = %d\n", k);
 
    free(array);
    return 0;
}
1
TheAlexLag
0 / 0 / 0
Регистрация: 23.10.2013
Сообщений: 22
21.09.2014, 12:26  [ТС] 10
Вывести те элементы в наборе, которые меньше своего левого соседа, и количество K таких элементов

не правильная конвертация

Добавлено через 9 минут
Спасибо, я уже разобрался.
там нужно было так:
C
1
int* array =(int *)malloc(sizeof(int) * n);
вместо этого:
C
1
int* array = malloc(sizeof(int) * n);
0
Vtulhu
423 / 377 / 200
Регистрация: 12.08.2011
Сообщений: 1,610
21.09.2014, 15:10 11
Цитата Сообщение от TheAlexLag Посмотреть сообщение
там нужно было так:
Где "там"? В С это не нужно. Подозреваю, что Вы используете компилятор С++. И даже не удосужились указать ему, что это код на С, а не на С++. Открою Вам страшную тайну: С - не подмножество С++. Это другой язык.
0
21.09.2014, 15:10
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.09.2014, 15:10

Вывести на экран все элементы массива, которые меньше последнего элемента и больше первого элемента
Первая строка число N,(N&gt;0) -- длина массива. Длина массива не более 100...

Найти количество элементов двумерной матрицы, превосходящих 10 и меньше 20. Суммировать такие элементы
Найти количество элементов двумерной матрицы, превосходящих 10 и меньше 20....

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


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

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

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