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

(CИ)26. Определить сколько раз последовательность из N произвольных чисел меняет знак - C++

Восстановить пароль Регистрация
 
INZA
 Аватар для INZA
61 / 57 / 1
Регистрация: 18.11.2010
Сообщений: 499
16.04.2011, 23:41     (CИ)26. Определить сколько раз последовательность из N произвольных чисел меняет знак #1
(СИ)Определить сколько раз последовательность из N произвольных чисел меняет знак
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.04.2011, 23:41     (CИ)26. Определить сколько раз последовательность из N произвольных чисел меняет знак
Посмотрите здесь:

C++ последовательность чисел сколько раз меняеться знак
C++ имеется последовательность чисел содержащая n элементов, определить сколько раз в ней меняется знак
Определить сколько раз массив меняет знак на противоположный C++
Определить сколько раз массив меняет знак C++
C++ Массив: Определить, сколько раз меняется знак в данной последовательности чисел, запомнить номера позиций, в которой происходит смена знака.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
17.04.2011, 00:20     (CИ)26. Определить сколько раз последовательность из N произвольных чисел меняет знак #2
Нулевые элементы не учитываются
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
#include <stdio.h>
 
int sign_changes_count(int * arr, size_t size){
    int sign, cnt;
    
    sign = ( *arr++ < 0 ) ? -1 : 1;
    for ( cnt = 0; --size; ++arr )
        if ( *arr * sign < 0 && ++cnt )
            sign *= -1;
    
    return cnt;
}
 
void dump(int * arr, size_t size){
    while ( size-- )
        printf("%d ", *arr++);
    printf("\n");
}
 
int main(void){
    int a[] = { 1, -1, -2, 2 };
    int b[] = { 1, 0, -1, 0, -1, 1 };
    
    printf("a: ");
    dump(a, sizeof(a) / sizeof(*a));
    printf("%d sign changes.\n", sign_changes_count(a, sizeof(a) / sizeof(*a)));
    printf("b: ");
    dump(b, sizeof(b) / sizeof(*b));
    printf("%d sign changes.\n", sign_changes_count(b, sizeof(b) / sizeof(*b)));
    
    return 0;
}
popov654
 Аватар для popov654
31 / 31 / 2
Регистрация: 09.04.2011
Сообщений: 114
17.04.2011, 00:54     (CИ)26. Определить сколько раз последовательность из N произвольных чисел меняет знак #3
Masredis
Котэ
 Аватар для Masredis
80 / 80 / 1
Регистрация: 04.09.2010
Сообщений: 541
17.04.2011, 02:56     (CИ)26. Определить сколько раз последовательность из N произвольных чисел меняет знак #4
int a[] = { 1, -1, 2, 2 };
ответ всё равно остаётся неизменным ) Ответ : " изменяется 2 знака "

int a[] = { 1, -1, -2, -2 }; Ответ : "1 знак "

может я что то не то сделал ?)
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
17.04.2011, 12:50     (CИ)26. Определить сколько раз последовательность из N произвольных чисел меняет знак #5
Цитата Сообщение от Masredis Посмотреть сообщение
int a[] = { 1, -1, -2, -2 }; Ответ : "1 знак "
может я что то не то сделал ?
Может задание невнимательно прочитали? Знак в последовательности меняется 1 раз. Что удивляет?
Yandex
Объявления
17.04.2011, 12:50     (CИ)26. Определить сколько раз последовательность из N произвольных чисел меняет знак
Ответ Создать тему
Опции темы

Текущее время: 02:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru