Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 18.10.2018
Сообщений: 2
1

Определить, сколько раз меняется знак в самой длинной последовательности чисел, не содержащей нули

18.10.2018, 21:58. Показов 909. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток, помогите, пожалуйста, решить задачу.
Задан массив целых чисел. Определить, сколько раз меняется знак в самой длинной последовательности чисел, не содержащей нули. Язык Си.
Большое спасибо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.10.2018, 21:58
Ответы с готовыми решениями:

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

Определить, сколько раз в последовательности чисел меняется знак
Дана последовательность из 20 чисел. Определить, сколько раз в последовательности меняется знак...

Определить, сколько раз меняется знак в последовательности чисел
Условие: написать программу, определяющую, сколько раз меняется знак в последовательности чисел...

Определить, сколько раз меняется знак в последовательности чисел
здравствуйте. помогите пожалуйста решить пару задач VII.Одномерные массивы 23. Задан массив...

2
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
19.10.2018, 00:47 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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#include <stdio.h>
 
int main(void) {
    int array[] = { 0, 1, -1, 0, 1, 2, -3, -4, 5, -6, 7, 0, 2, -2, 2, 2 };
    int * arrayEnd = array + sizeof(array) / sizeof(array[0]);
    int * pMaxStart, * pMaxEnd, * pCurrentStart, * pCurrentEnd;
    int signChanges = 0;
    
    printf("Array:\n");
    for ( pCurrentStart = array; pCurrentStart < arrayEnd; ++pCurrentStart )
        printf("%3d", *pCurrentStart);
    printf("\n");
    
    for ( pMaxStart = array; pMaxStart < arrayEnd && *pMaxStart == 0; ++pMaxStart )
        ;
    if ( pMaxStart == arrayEnd ) {
        printf("All elements ar zero's!\n");
        return 1;
    }
    
    for ( pMaxEnd = pMaxStart + 1; pMaxEnd < arrayEnd && *pMaxEnd != 0; ++pMaxEnd )
        ;
 
    pCurrentEnd = pMaxEnd;
    while ( pCurrentEnd < arrayEnd ) {
        for ( pCurrentStart = pCurrentEnd + 1; pCurrentStart < arrayEnd && *pCurrentStart == 0; ++pCurrentStart )
            ;
        if ( pCurrentStart == arrayEnd )
            break;
        for ( pCurrentEnd = pCurrentStart + 1; pCurrentEnd < arrayEnd && *pCurrentEnd != 0; ++pCurrentEnd )
            ;
        if ( ( pMaxEnd - pMaxStart ) < ( pCurrentEnd - pCurrentStart ) ) {
            pMaxStart = pCurrentStart;
            pMaxEnd = pCurrentEnd;
        }
    }
 
    
    printf("Longest zero-free sequence:\n");
    for ( pCurrentStart = pMaxStart; pCurrentStart < pMaxEnd; ++pCurrentStart )
        printf("%3d", *pCurrentStart);
    printf("\n");
    
    pCurrentStart = pMaxStart;
    for ( pCurrentEnd = pCurrentStart + 1; pCurrentEnd < pMaxEnd; ++pCurrentEnd ) {
        if ( *pCurrentStart * *pCurrentEnd < 0 ) {
            ++signChanges;
            pCurrentStart = pCurrentEnd;
        }
    }
    
    printf("Sign changed %d times.\n", signChanges);
    
    return 0;
}
Код
[andrew@easybook numbers]$ gcc -Wall sign_changes.c 
[andrew@easybook numbers]$ ./a.out 
Array:
  0  1 -1  0  1  2 -3 -4  5 -6  7  0  2 -2  2  2
Longest zero-free sequence:
  1  2 -3 -4  5 -6  7
Sign changed 4 times.
[andrew@easybook numbers]$
1
0 / 0 / 0
Регистрация: 18.10.2018
Сообщений: 2
19.10.2018, 09:45  [ТС] 3
Спасибо.
0
19.10.2018, 09:45
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.10.2018, 09:45
Помогаю со студенческими работами здесь

Сколько раз меняется знак в данной последовательности чисел? Запомнить номера позиций, в которых меняется знак
Помогите пожалуйста переделать программу. Вот задание для программы :Задан массив. Определить...

Определить, сколько раз меняется знак в данной последовательности чисел
Задан массив вещественных чисел.Определить,сколько раз меняется знак в данной последовательности...

Определить, сколько раз меняется знак в данной последовательности чисел
Добрый день пишу программку Задан массив действительных чисел. Определить, сколько раз меняется...

Определить, сколько раз меняется знак в данной последовательности чисел
Всем привет, в общем нужно сделать задачу, на delphi, я тут сделал их только на visual studio а...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru