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

Массив - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Организация циклов в программе. Работа с массивами. Пойнтеры. Функции. http://www.cyberforum.ru/cpp-beginners/thread192239.html
Очень сложное задание,нужно написать программу на языке С++...Одну общую программу,из 8 пунктов: Заданное условие:НЕЧЁТНЫЕ ЧИСЛА. 1. Проверить если число n (числа m, n и k) удовлетворяют заданное условие. 2. Определить все числа из интервала , которые удовлетворяют заданное условие. 3. Определить первые n числа, которые удовлетворяют заданное условие. 4. Написать функции для чтение, вывода и...
C++ Нужен if Нужен контроль на тем что печатается. то есть, если есть ответ, например если ввести 16, то ответ 16 и 33, а если написать 61, то должно напечатать что друзей нет. на данный момент когда вводишь число без друзей, программа выдает список всех номеров без друзей. Спасибо #include <iostream> #include <iomanip> int get_delimetrs_sum(int number){ int lim = (number / 2); int sum = 0; ... http://www.cyberforum.ru/cpp-beginners/thread192237.html
C++ Статическая локальная переменная
Помогите пожалуйста привести пример использования статической локальной переменной в функции
C++ Написать программу с рекурсией
Помогите Написать программу с рекурсивной функцией перевода числа из десятичной системы счисления в двоичную.
C++ Одномерный массив http://www.cyberforum.ru/cpp-beginners/thread192199.html
Для последовательности из n вущественных значений ai(а итых) создать новую последовательность, состоящую из различных элементов исходной последовательности и входящих в неев исходном порядке следования. Нужно две версии программы: 1) работа с массивом через индексацию 2) работа с массивом через указатели.Нужно создать входной файл, и чтобы чтение шло из входного файла. Все данные должны...
C++ Массивы(консоль) С++ Задано два массива. Найти наименьшие среди элементов первого мас-сива, которые не входят во второй массив. Но только без использования функций. подробнее

Показать сообщение отдельно
accept
4837 / 3236 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
18.11.2010, 03:33     Массив
наверное имеется в виду самую короткую серию
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
#include <stdio.h>
 
/* находит индекс и длину кратчайшей серии нечётных чисел */
int main(void)
{
    int n[10] = { 1, 3, 1, 3, 2, 3, 7, 8, -1, 9 };
    int i, count;
    int minseqlen, minseqind;
    
    minseqlen = sizeof n / sizeof n[0];
    minseqind = -1;
    
    count = 0;
    for (i = 0; i < 10; i++)
        if (n[i] % 2 != 0) {
            count++;
            if (i + 1 == 10 && count < minseqlen) {
                minseqlen = count;
                minseqind = i - count + 1;
            }
        } else if (count > 0 && count < minseqlen) {
            minseqlen = count;
            minseqind = i - count;
            count = 0;
        }
 
    printf("len = %d, ind = %d" "\n", minseqlen, minseqind);
    
    return 0;    
}
Код
[guest@localhost tests]$ ./t
len = 2, ind = 5
[guest@localhost tests]$
Добавлено через 13 часов 13 минут
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#include <stdio.h>
 
size_t condremove_array(int arr[], size_t nobj, int (*check)(int));
int isposit(int n), isnegat(int n), iseven(int n), isodd(int n);
 
int main(void)
{
    int n[10] = { 1, 3, 1, 3, -8, 3, 7, 8, -1, 9 };
    int i;
    int newsize;
 
#if 1
    printf("remove all positive:\n");
    newsize = 10 - condremove_array(n, 10, &isposit);
#endif
 
#if 0
    printf("remove all negative:\n");
    newsize = 10 - condremove_array(n, 10, &isnegat);
#endif
 
#if 0
    printf("remove all even:\n");
    newsize = 10 - condremove_array(n, 10, &iseven);
#endif
    
#if 0
    printf("remove all odd:\n");
    newsize = 10 - condremove_array(n, 10, &isodd);
#endif
    
    for (i = 0; i < newsize; i++)
        printf("%d%s", n[i], (i + 1 < newsize ? " " : "\n"));
    printf("newsize: %d" "\n", newsize);
    
    return 0;
}
 
/* удалить из массива элементы по условию */
size_t condremove_array(int arr[], size_t nobj, int (*check)(int))
{
    size_t i, j, count;
    
    for (i = 0; i < nobj - 1; i++)
        for (j = i + 1; j < nobj; j++)
            if (check(arr[i]) && !check(arr[j])) {
                int tmp = arr[i];
                arr[i] = arr[j];
                arr[j] = tmp;
            }
    
    count = 0;
    for (i = 0; i < nobj; i++)
        if (check(arr[i]))
            count++;
    
    return count;
}
 
int isposit(int n)
{
    return n > 0;    
}
 
int isnegat(int n)
{
    return n < 0;
}
 
int iseven(int n)
{
    return n % 2 == 0;
}
 
int isodd(int n)
{
    return n % 2 != 0;
}
Код
[guest@localhost tests]$ ./t
remove all positive:
-8 -1
newsize: 2
[guest@localhost tests]$
 
Текущее время: 12:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru