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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Dosmanoff
0 / 0 / 0
Регистрация: 29.09.2016
Сообщений: 1
#1

Программа неправильно работает - C++

29.09.2016, 09:43. Просмотров 108. Ответов 0

Всем доброго времени суток! Мое задание: "Есть некоторая последовательность цифр. Напишите программу, которая определит, какое максимальное число можно составить из данной последовательности, при условии, что оно должно делиться на 15." Я сделал в программе проверку на наличие 0 и 5, делимость суммы элементов на 3. Однако при выдаче результата программа выдает неверное число. Я подозреваю что ошибка в конечном условии if. Сам код:


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 "stdafx.h"
#include <iostream>
#include <limits>
#include <algorithm>
#include <functional>
 
using namespace std;
 
 
int main()
{
 
    cout << "Vvedite dlinu posledovatelnosti:\n";
    int n, sum = 0, lil = 0, posfive = -1, poszero = -1;
    bool exfive = false, deriv = false, exzero = false;
    cin >> n;
    const int count = n;
    int *arr = new int[count];
 
    for (int i = 0; i < count; i++) {
        cin >> arr[i];
    }
 
    for (int i = 0; i < count; i++) {
        // проверяем есть ли в последовательности 0
        if (arr[i] == 0) {
            exzero = true;
            poszero = i;
            break;
        }
        exzero = false;
    }
 
    for (int i = 0; i < count; i++) {
        // проверяем есть ли в последовательности 5
        if (arr[i] == 5) {
            exfive = true;
            posfive = i;
            break;
        }
        exfive = false;
    }
 
    
        for (int i = 0; i < count; i++) {
            // если есть то складываем все числа чтобы проверить делимость числа на 3
            sum += arr[i];
        }
    
 
    if (exzero == false || exfive == false || sum % 3 != 0)
        cout << "Iz etih cifr nelzya sozdat takoe chislo! Vvedite drugie chisla!\n";
    else
        deriv = true;
    
    // если в числе есть 0 или 5 и оно делится на 3, то находим младший разряд
    if (deriv == true) {
        if (poszero != -1)
            for (int i = poszero; i < n; ++i) arr[i] = arr[i + 1];
        else
            for (int  i = posfive;  i < n;  ++i) arr[i] = arr[i + 1];
 
 
        // сортируем массив оставшихся чисел
        sort(arr, arr + (count - 1), greater<int>());
 
        cout << "Maksimalnim chislom yavlayetsya: ";
        for (int i = 0; i < count-1; i++) {
            cout << arr[i];
        }
        cout << "\n";
 
    }
 
    delete arr;
    system("pause");
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.09.2016, 09:43     Программа неправильно работает
Посмотрите здесь:

программа работает неправильно - C++
Дана символьная матрица размера 13 на 18. Найти: номер первой по порядку строки, содержащий наибольшее число цифр; #include...

Неправильно работает программа - C++
файл complex.h #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;math.h&gt; using namespace std; class Complex // класс...

неправильно работает программа на с++. - C++
вычислить произведение и число отрицательных элементов матрицы А,находящихся под главной диагональю. #include &lt;vcl.h&gt; #pragma...

Программа работает неправильно - C++
Написал программу на C++, но она работала не правильно, начал разбираться, понемногу удаляя код нашел проблему. Проблема в строчке №12. ...

Почему программа работает неправильно - C++
не могу понять почему программа работает не правильно # include &lt;stdio.h&gt; # include &lt;conio.h&gt; # include &lt;math.h&gt; float f1(int...

Почему программа неправильно работает - C++
string IntToStr(int a) { if (a == 0) return &quot;0&quot;; string str = &quot;&quot;; int b = a; if (a &lt; 0) a *= -1; while (a &gt; 0) str =...

подскажите почему программа работает неправильно - C++
Использование двумерного массива как аргумента функции и возвращаемого значения функции выдает предупреждение:1&gt;------ Build...

Почему моя программа неправильно работает? - C++
Постоянно выводится сообщение Incorrect letter grade entered. Enter a new grade. #include &lt;stdlib.h&gt; #include &lt;stdio.h&gt; int...

Неправильно работает небольшая программа-калькулятор - C++
это калькулятор фунтов, шиллингов и пенсов по старой системе. он должен уметь складывать, вычитать суммы, а также, умножать на число....

Компиляция проходит, но программа работает неправильно - C++
Задача: дан текстовый файл. в нем символы &quot;.&quot; и &quot;,&quot; заменить на &quot;тчк&quot; и &quot;зпт&quot; соответственно. ...

Не могу понять, почему программа неправильно работает! - C++
Изучаю С++ по Страуструпу Б. - Программирование. Принципы и практика использования C++. Есть задание: 9. Вычислите сумму введенных...

Программа работает неправильно. Цикл не выполняется. Подскажите ошибку - C++
Здравствуйте. Подскажите, пожалуйста, почему неправильно выполняется программа( не выполняется цикл). Заранее спасибо. #include...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru