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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Составьте программу вычисления среднего арифметического целых чисел из отрезка [-4; 15] http://www.cyberforum.ru/cpp-beginners/thread1815796.html
Составьте программу вычисления среднего арифметического целых чисел из отрезка .
C++ Удаление/изменение DLL после использования Доброго времени суток. Подскажите, возможна ли полная выгрузка DLL из процесса программы которая её использовала, без перезапуска самой программы? В общих чертах вот что я пытаюсь сделать: HMODULE Dll01 = LoadLibrary("Dll01.dll"); ... FreeLibrary(Dll01); DeleteFile("Dll01.dll"); //Не удаляет. На сколько я понял FreeLibrary освобождает только память выделенную под работу DLL, но она по... http://www.cyberforum.ru/cpp-beginners/thread1815789.html
C++ Конвертация времени в американский формат и обратно
есть задача: создать класс Time, в котором реализованы операции сложения, вычитания, сравнения, введения и выведения на екран. Возможность конвертации времени в американский формат и обратно, на пример 10:00 pm=22:00, 12:00 pm= 00:00. Вроде все написал, все работает, но преподу что то не нравится, говорит что код можно сделать лучше, вот только не говорит как. Можете посмотреть какие есть...
C++ Составьте блок-схему и программу(код и скриншот результата) вычисления значения выражения для данного натураль
Составьте блок-схему и программу(код и скриншот результата) вычисления значения выражения для данного натурального числа N: 4+8+12+ … +4∙N.
C++ Как можно сделать переполнение стека http://www.cyberforum.ru/cpp-beginners/thread1815785.html
Всем привет, ребята, есть у меня код с микрософта, как переполнить стек. Но беда, не понимаю кое что, напишу в комментариях. void StackOverflow(int value) { char dataArray; // Вроде бы массив с заданным размером. Каким образом он используется cout << "Overflow: " << value << endl; // В рекурсии данной функции? Sleep(20); StackOverflow(value + 1); // рекурсия; И тут мы...
C++ Транспонировать целочисленную матрицу 5х5, т.е. отразить относительно главной диагонали Транспонировать целочисленную матрицу 5х5, т.е. отразить относительно главной диагонали. подробнее

Показать сообщение отдельно
Dosmanoff
0 / 0 / 0
Регистрация: 29.09.2016
Сообщений: 1
29.09.2016, 09:43     Программа неправильно работает
Всем доброго времени суток! Мое задание: "Есть некоторая последовательность цифр. Напишите программу, которая определит, какое максимальное число можно составить из данной последовательности, при условии, что оно должно делиться на 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;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 16:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru