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

В массиве найти самую маленькую серию подряд стоящих нечетных элементов... (Как доработать программу?) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ указатели (матрица, найти наибольший из элементов) http://www.cyberforum.ru/cpp-beginners/thread717822.html
дана вещественная матрица n*n .В строках с отрицательным элементом на главной диагонали найти наибольший из элементов. с помощью указателей)
C++ Без операторов цикла вывести цифры числа через пробел Решить не используя операторы цикла. Дано натуральное число N. Выведите все его цифры по одной, в обычном порядке, разделяя их пробелами или новыми строками. Например Ввод Вывод 179 1 7 9 http://www.cyberforum.ru/cpp-beginners/thread717813.html
задача на массив (Вычислить А^n) C++
Дан массив размером n*n элементы которого целые числа. Вычислить А^n ? где n - натуральное число. С++
Зачет [реализовать базу данных в виде массива] C++
Основываясь не этой структуре: struct clientData //клиент { int accNum; //номер счёта char Sur; //фамилия char Name; //Имя float balance; //Баланс (сумма на счету, или долг) };
C++ Поиск наибольшей строки http://www.cyberforum.ru/cpp-beginners/thread717798.html
Передо мной стоит задание: использовать шаблонную функцию для нахождения самого большого значения для массивов int и double, и использовать явную специализацию для поиска самой большей строки. Вот код: #include <iostream> using namespace std; template <class T> void maxn(T mass, int n); template <> void maxn(char * name,int t); int main() { char * words; words="Boogy";
C++ Нахождение степени числа (pow) Помогите пожалуйста написать программу. Я так понял тут нужно использовать функцию Pow и возводить основание (-3 в данном случае), в разные степени от 1 до того момента пока не будет оно равно или больше результата (81 в данном случае). Но в код реализовать не получается. Подскажите. Программа принимает от пользователя два целых числа. Далее, если первое число является степенью второго... подробнее

Показать сообщение отдельно
xtorne21st
интересующийся
304 / 275 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
03.12.2012, 21:54
Решил не вникать в ваш код. Если будете компилировать чем-то Майкрософтским добавте conio.h и getch(), как в вашем примере.
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
/* В заданном массиве целых чисел найти самую маленькую серию подряд
   стоящих нечетных элементов. Удалить из массива два первых простых
   числа. Проверить, изменилась ли серия подряд стоящих нечетных
   элементов. */
 
#include <stdio.h>
#define SIZE 10 // константа SIZE которая равна 10
 
// Функция принимает два аргуманта: указатель на массив и его размер
void myFunc( int *name, const int size );
 
int main( void )
{
    int array[SIZE] = { 2, 8, 13, 15, 16, 19, 3, 7, 6, 1 };
    
    myFunc( array, SIZE );
    return 0;
}
 
void myFunc( int *name, const int size )
{
    int i, j, s, count, min, fnd;
    int *arr;
    arr = name;
    
    i = 0;
    printf( "We have array:\n" );
    for( i = 0; i < size; ++i ) {
    printf( "%d ", arr[i] );
    if( !(i % 9) && i != 0)
        printf( "\n" );
    }
    puts( "\0" ); // введём пустую строку ( с символом новой строки)
    /* Найдём минимальную серию нечётных элементов */
    fnd = 0;
    min = size + 1;
    for( i = 0; i < size; ++i ) {
    if( arr[i] % 2 ) {
        j = 0;
        for( s = i; s < size && arr[s] % 2; ++s, ++j );
        if( j < min ) {
        min = j;
        fnd = i;
        i = s;
        }
        else
        i = s;
    }
    }
    if( min > size )
    printf( "No odd elements of array\n" );
    else    
    printf( "Minimum set of odd elements begins from:\n"
        "index: %d\telement: %d\n", fnd, arr[fnd] );
    puts( "\0" );
    /* проверим массив на "простоту" и удалим (заменим нулями)
     первые два элемента */
    for( i = count = 0; i < size; ++i ) {
    for( j = 2; j <= (arr[i] / j); ++j )
        if( !(arr[i] % j ))
        break;
    if( j > ( arr[i] / j )) {
        ++count;
        if( count <= 2 ) {
        printf( "%d - simple digit: deleted\n", arr[i] );
        arr[i] = 0;
        }
    }
    }
    puts( "\0" );
    printf( "Now we have new array:\n" );
    for( i = 0; i < size; ++i ) {
    printf( "%d ", arr[i] );
    if( !(i % 9) && i != 0)
        printf( "\n" );
    }
    puts( "\0" );
    /* заново найдём минимальную серию нечётных элементов */
    fnd = 0;
    min = size + 1;
    for( i = 0; i < size; ++i ) {
    if( arr[i] % 2 ) {
        j = 0;
        for( s = i; s < size && arr[s] % 2; ++s, ++j );
        if( j < min ) {
        min = j;
        fnd = i;
        i = s;
        }
        else
        i = s;
    }
    }
    if( min > size )
    printf( "No odd elements of array\n" );
    else    
    printf( "New minimum set of odd elements begins from:\n"
        "index: %d\telement: %d\n", fnd, arr[fnd] );
    puts( "\0" );
    return;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru