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

Подсчёт числа серий положительных, отрицательных чисел и нулей длиной не менее k в массиве - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Описать класс, соответствующий матрицам, с операциями их сложения http://www.cyberforum.ru/cpp-beginners/thread19118.html
ПОМОГИТЕ ПОЖАЛУЙСТА!!! Задание: 1. Описать класс, соответствующий матрицам размерности 7 × 7, с операциями сложения матриц, умножения матрицы на число, умножения матриц друг на друга*, вычисления...
C++ 3-х мерный массив+Строки+функции Задача: Обработать n1 матриц размером n*m. Элемент строка. В каждой из матриц есть одно слово состоящее только из цифр. Найти его, преобразовать, записать в новый массив. Дополнение: -Обязательно... http://www.cyberforum.ru/cpp-beginners/thread19106.html
Поиск кратчашего пути в ненагруженном неорграфе от любой вершины до любой C++
Задача: необходимо найти кратчайший путь в ненагруженном неорграфе от любой вершины до любой. Соображения: алгоритм Флойда не годится (О(n^3) - много). Общая идея - построение остовного дерева и...
Поиск в строке по образцу. C++
Подсчитайте количество указанных цепочек в файле, найденных по образцу. Причем в образце символ "+" означает один произвольный символ, а символ "*" – произвольную цепочку длиной не более 5 символов....
C++ Напишите программу, вычисляющую стоимость покупки с учетом скидки. http://www.cyberforum.ru/cpp-beginners/thread19102.html
Помогите решить 4 задачи: :wall:1) Известно, что оптимальный вес вычисляется по форуме: рост(в сантиметрах) - 100.Напишите программу, которая вычисляет оптимальный вес и выдает рекомендации. ...
C++ Работа со стуктурой и файлами Есть задачка, состоит с двух частей. Превую часть я сделал: Создать структуру, чтоб можна было добавлять данные , удалять, поиск за заданым елементом, выводить на екран всю структуру, запись в файл и... подробнее

Показать сообщение отдельно
accept
4822 / 3243 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
22.12.2008, 08:36
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
#include <stdio.h>
 
/* подсчитывает число серий <0 =0 >0 чисел в массиве */
main()
{
    int getser(int *, unsigned, int *, int *, int *);
    int nneg, nzer, npoz;
    int nums[] = { 1, 2, -1, -2, 3, 4, 5, 0, 1 };
    
    if (getser(nums, sizeof nums / sizeof nums[0], &nneg, &nzer, &npoz) > 0)
        return 1;
    printf("negative: %d\n", nneg);
    printf("zeroes: %d\n", nzer);
    printf("pozitive: %d\n", npoz);
    return 0;
}
 
#define IN   1   /* внутри серии  */
#define OUT  0   /* снаружи серии */
 
/* getser:  считает число серий <0 =0 >0 чисел */
int getser(int *nump, unsigned n, int *neg, int *zer, int *poz)
{
    int nstate, zstate, pstate;
    
    *neg = *zer = *poz = 0;
    for (nstate = zstate = pstate = OUT; n > 0; nump++, n--)
        if (*nump < 0) {
            zstate = pstate = OUT;
            if (nstate == OUT) {
                nstate = IN;
                (*neg)++;
            }
        } else if (*nump == 0) {
            nstate = pstate = OUT;
            if (zstate == OUT) {
                zstate = IN;
                (*zer)++;
            }
        } else {
            nstate = zstate = OUT;
            if (pstate == OUT) {
                pstate = IN;
                (*poz)++;
            }
        }
    return (*neg || *zer || *poz) ? 0 : 1;
}
считает просто количество серий
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru