Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.69
Bloodykeeper
This party getting crazy!
78 / 74 / 1
Регистрация: 22.09.2009
Сообщений: 427
#1

Неубывающая последовательность. - C++

30.03.2010, 21:52. Просмотров 1841. Ответов 5
Метки нет (Все метки)

Написать и протестировать функцию, которая определяет, образуют ли элементы целочисленного массива неубывающую последовательность. Функция возвращает NULL, если всё в порядке, или индекс первого элемента массива, на котором условие нарушается.

Необходима эта задача, точнее как выглядит решение. Вот нашёл как она пишется на С#. Есть ли человек, который сможет мне перевести её с этого языка на Си?

C#
1
2
3
4
5
6
7
8
9
10
11
12
private int prover(int[] arr)
{
bool tf=false;
for(int i=0;i<arr.Length;i++)
{
if(arr[i]<arr[i+1])
{tf=true;}
else{break;return i+1;}
}
if(tf==true)
{return null;}
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.03.2010, 21:52     Неубывающая последовательность.
Посмотрите здесь:

Неубывающая последовательность - C++
Понять не могу вроде все должно работать. #include &quot;stdafx.h&quot; #include &quot;stdio.h&quot; #include &quot;conio.h&quot; #include &quot;math.h&quot; #include...

Что такое неубывающая последовательность ? - C++
Подскажите пожалуйсто что такое неубывающая последовательность желательно определение и желательно слово в слово, а то в интернете вообще...

Вычислить число различных элементов последовательности (предположить, что последовательность неубывающая) - C++
C++ Вычислить число различных элементов последовательности( предположить, что последовательность неубывающая) Если можно то с...

Получить сумму членов исходной последовательности если преобразованная последовательность неубывающая - C++
Помогите!!! Дана последовательность действительных чисел A(n). Если в результате замены отрицательных членов последовательности их...

Задана последовательность слов. Определить частоту вхождения каждого слова в последовательность. - C++
Доделать программу, чтобы работала как надо Задана последовательность слов. Определить частоту вхождения каждого слова в...

Преобразовать литерную последовательность в другую литерную последовательность всеми описанными ниже способами - C++
Здравствуйте, уже несколько дней мучаюсь над такой задачей : &quot;Имеется литерная последовательность, состоящая из не более чем 30 ...

Неубывающая последовательность - PascalABC.NET
Ребята, не могу понять как сделать это на Паскале: Сколько существует чисел от 1 до n таких, что цифры числа начиная с самого старшего...

матрицы и неубывающая последовательность - MathCAD
здравствуйте! помогите решить вот такое задание в матлабе: • Если элементы массива по строкам образуют неубывающую последовательность,...

матрицы и неубывающая последовательность - Delphi
помогите решить вот это задание :Если элементы массива по строкам образуют неубывающую последовательность, то все отрицательные элементы...

Максимальная неубывающая последовательность в массиве - Java
Нужно написать клиент серверное приложение которое возвращает максимальную неубывающую последовательность массива. Почемуто количество...

Самая длинная неубывающая числовая последовательность - Pascal
В данном одномерном числовом массиве найти самую длинную неубывающую числовую последовательность и вывести её на экран. ПОДСКАЖИТЕ, В...

Дана неубывающая последовательность из N натуральных чисел. Определите, есть ли среди данных чисел хотя бы одна пара таких, что их сумма равна 100 - Delphi
Нужно придумать, как при помощи двоичного поиска решить данную задачу. Ну, двоичный поиск - такая штука, при которой мы бьем диапазон...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
M128K145
Эксперт С++
8283 / 3502 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
31.03.2010, 00:42     Неубывающая последовательность. #2
Поверьте, этот код, который на шарпе не рабочий и написан более чем криво.
C++
1
2
3
4
5
6
7
int prover(int* arr, int size)
{
    for(int i = 0; i < size - 1; ++i)
        if(arr[i] >= arr[i + 1])
            return i + 1;
    return -1;
}
Возвращать NULL - глупо, это может привести к большим ошибкам, логичнее возвращать отрицательное число
Bloodykeeper
This party getting crazy!
78 / 74 / 1
Регистрация: 22.09.2009
Сообщений: 427
31.03.2010, 07:39  [ТС]     Неубывающая последовательность. #3
M128K145, спасибо! а для Си код такой же? и...какие переменные из этой функции использовать в основной?
M128K145
Эксперт С++
8283 / 3502 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
31.03.2010, 10:11     Неубывающая последовательность. #4
Bloodykeeper, никаких. Просто передаете в функцию массив и его длину, и получаете индекс
На С точно также
Bloodykeeper
This party getting crazy!
78 / 74 / 1
Регистрация: 22.09.2009
Сообщений: 427
31.03.2010, 18:16  [ТС]     Неубывающая последовательность. #5
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
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
    int *a, i, n, k;
 
    printf("Enter n, k: ");
    scanf("%d %d", &n, &k);
 
    arr = (int *) malloc(sizeof(int) * n);
    for(i = 0; i < n; i++) {
        printf("array[%d]: ", i);
        scanf("%d", &a[i]);
    }
     prover(int* arr, int size)
............................................
 
int prover(int* arr, int size)
{
    for(int i = 0; i < size - 1; ++i)
        if(arr[i] >= arr[i + 1])
            return i + 1;
    return -1;
}
Пока что вот так вот застрял. Помогите плиз доделать.

Добавлено через 4 часа 11 минут
Актуально!
easybudda
Эксперт С++
9456 / 5469 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
31.03.2010, 18:55     Неубывающая последовательность. #6
Цитата Сообщение от M128K145 Посмотреть сообщение
Возвращать NULL - глупо, это может привести к большим ошибкам, логичнее возвращать отрицательное число
В книжках про программирование в UNIX часто такой подход наблюдал: в случае успеха функция возвращает 0, неудачи - какое-нибудь число, ошибки - -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
#include <stdio.h>
 
/*
    возвращает 0, если последовательность неубывающая,
    положительное число, если нет, -1 в случае ошибки
*/
int test(int * arr, int count){
    int i;
    if ( !arr || count < 2 )
        return -1;
    for ( i = 1; i < count && arr[i] >= arr[i-1]; ++i )
        ;
    return ( count - i ) ? i : 0;
}
 
int main(void){
    int arr1[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
    int arr2[] = { 1, 4, 3, 2, 5, 6, 7, 9, 8 };
    int t;
 
    if ( ( t = test(arr1, sizeof(arr1) / sizeof(*arr1)) ) < 0 ){
        fprintf(stderr, "Error!\n");
        return 1;
    }
    printf("Array #1 is %s\n", ( t ) ? "BAD" : "OK");
 
    if ( ( t = test(arr2, sizeof(arr2) / sizeof(*arr2)) ) < 0 ){
        fprintf(stderr, "Error!\n");
        return 1;
    }
    printf("Array #2 is %s\n", ( t ) ? "BAD" : "OK");
 
    return 0;
}
Yandex
Объявления
31.03.2010, 18:55     Неубывающая последовательность.
Ответ Создать тему
Опции темы

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