Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
-12 / 0 / 1
Регистрация: 06.10.2015
Сообщений: 32

Класс, найти ошибки + вписать еще одно условие

16.05.2016, 00:30. Показов 2047. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Создать программу, вводящую в цикле несколько дробей (не более заданного количества N), и находящую для введенных дробей две суммы: сумму дробей с нечетными порядковыми номерами и сумму дробей с четными номерами. Программа заканчивает работу, когда сумма дробей с четными номерами окажется больше, чем с нечетными. Большая часть программы работает, последняя часть программы не доделана
Огромная просьба помочь докончить программу и найти ошибки, ибо уже никаких сил не осталось

drob.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#pragma once
class Drob
{
private:
    int chis; //Числитель.
    int znam; //Знаменатель.
    void ChangeSign(); //Функция проверки знака в знаменателе.
public:
    Drob(); //Конструктор.
    ~Drob(); //Деструктор.
    void Input(); //Функция ввода дроби.
    void Output(); //Функция вывода дроби.
    Drob operator * (const int&);
};
drob.cpp
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
#include "stdafx.h"
#include "iostream"
using namespace std;
#include "Drob.h"
 
 
Drob::Drob() //Конструктор.
{
    chis = 0;
    znam = 1;
}
 
 
Drob::~Drob() //Деструктор.
{
}
 
 
void Drob::ChangeSign() //Функция замены знака в знаменателе.
{
    if (znam < 0)   //Если знаменатель < 0, то умножаем обе части дроби на -1. 
    {               //Если в минус только в знаменателе, то дробь отрицательная.
        chis *= -1; //Если минус в числителе и знаменателе, то дробь положительная.
        znam *= -1;
    }
}
 
 
void Drob::Input() //Функция ввода дроби.
{
    cout << "Numerator = ";
    cin >> chis; //Ввод числителя.
    cout << "Denominator = ";
    cin >> znam; //Ввод знаменателя.
    while (znam == 0) //Проверка на 0 в знаменателе.
    {
        cout << "Retry input denominator!" << endl;
        cout << "Denominator = ";
        cin >> znam;
        cout << endl;
    }
    ChangeSign(); //Проверка на знак в знаменателе.
}
 
 
void Drob::Output() //Функция вывода дроби.
{
    if (znam == 1) //Если знаменатель равен 1, то печать числителя.
    {
        cout << chis << " ";
        return;
    }
    if (chis == 0) //Если числитель равен 0, то печать числителя.
    {
        cout << chis << " ";
        return;
    }
    cout << chis << "/" << znam << " ";
}
mainapp.cpp
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
#include "stdafx.h"
#include "iostream"
using namespace std;
#include "Drob.h"
#include <malloc.h>
 
void InputArray(Drob*, int);
void OutputArray(Drob*, int);
int Chet(Drob*, int);
int Nechet(Drob*, int);
 
int main()
{
    int n, sum1=0, sum2=0;
    bool booll=false;
    Drob a, c, tmp, max, min;
    cout << "Size = ";
    cin >> n;
    if (n == 0) //Если размер массива равен 0, то ввести размер еще раз.
    {
        cout << "Retry input size!" << endl;
        cout << "Size = " << endl;
        cin >> n;
    }
    Drob* mas = new Drob[n];
    InputArray(mas, n); //Функция ввода элементов массива.
    printf("\n");
    printf("Original array:");
    printf("\n");
    OutputArray(mas, n); //Функция вывода элементов массива.
    printf("\n");
    printf("\n");
 
    sum1 = Chet(mas, n); //Сумма 1
    sum2 = Nechet(mas, n);
    printf("sum1:\n");
    printf("%d\n", sum1);
    printf("\n");
    printf("sum2:\n");
    printf("%d\n", sum2);
    printf("\n");
    return 0;
}
 
void InputArray(Drob* mas, int n) //Функция ввода элементов массива.
{
    for (int i = 0; i < n; i++)
        mas[i].Input();
}
 
void OutputArray(Drob* mas, int n) //Функция вывода элементов массива.
{
    for (int i = 0; i < n; i++)
        mas[i].Output();
}
 
int Chet(Drob* mas, int n) //Функция нахождения суммы нечетных
{
    int sum1;
    Drob max;
    for (int i = 0; i < n; i=i+2)
    {
        sum1 = sum1 + mas[i];
        
    }
    return sum1;
}
 
int Nechet(Drob* mas, int n) //Функция нахождения суммы четных
{
    int sum2;
    Drob min;
    for (int i = 0; i < n; i = i + 2)
    {
        sum2 = sum2 + mas[i];
 
    }
    return sum2;
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.05.2016, 00:30
Ответы с готовыми решениями:

Еще одно условие в цикле
Помогите написать условие в цикле For ... to .... Если простым языком то звучит так For i=0 to 10 If i = нечетное число Then ...

несколько условий , не добавить ещё одно условие
Прошу помочь доработать(исправить) формулу в которую не получается добавить ещё одно условие - Истекает90дн т.е. осталось до окончания...

несколько условий ,ни как не добавить ещё одно условие
Прошу помочь доработать(исправить) формулу в которую не получается добавить ещё одно условие - Истекает90дн т.е. осталось до окончания...

20
-12 / 0 / 1
Регистрация: 06.10.2015
Сообщений: 32
20.05.2016, 16:53  [ТС]
Студворк — интернет-сервис помощи студентам
Все равно сделал по-своему, не использовав массив
Спасибо за помощь
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.05.2016, 16:53

Можно ли в данное логическое выражение добавить ещё одно условие?
Здравствуйте, подскажите можно ли в данное выражение добавить ещё одно условие. Если можно то как правильно. $a = $b ? $b : $c нужно...

Найти ошибку и ещё одно задание на С
написал прогу по двусвязным спискам ,и было задание - вывести все элементы в обратном порядке, использовав рекурсию... в обычных списках...

Вписать двойное условие ЕСЛИ
Помогите, пожалуйста, вписать двойное условие ЕСЛИ. Есть такое условие: Если если значение ячейки (на первом листе) B2&gt;15 и Если...

Куда вписать условие для ОДЗ?
Куда тут можно засунуть условие ОДЗ, или как его лучше прописать? y не должно быть меньше 0 \alpha =ln({y}^{-\sqrt{\left|x...

В цикл вписать составное условие с ИЛИ
Как в цикл вписать составное условие с ИЛИ if stringgrid1.Cells = 'Rif.' или stringgrid1.Cells = 'Rif' или stringgrid1.Cells = ''...


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

Или воспользуйтесь поиском по форуму:
21
Ответ Создать тему
Новые блоги и статьи
сукцессия 30. Фосфорный и азотный замки по "честному" закону лимитирования Либиха
anaschu 16.07.2026
Основные достижения за последние дни 1. Механизм отложенного высвобождения фосфора Добавлен специальный пул для медленного разложения меланизированных гиф ЕСМ Реализована разная скорость. . .
Запрет пометки на удаление и отмены проведения
Maks 16.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "ПутевойЛист" разработанного в КА2. Задача: запретить помечать на удаление и отменять проведения путевого листа при условии, если он сдан. . .
Как надо было делать правильно - вообще не слушать ИИ, его дело - текст.
Hrethgir 15.07.2026
А вообще надо было делать не так, чтобы не исправлять ошибку https:/ / www. cyberforum. ru/ blogs/ 223907/ 10996. html , правильно было : удалил кнопку, а потом добавил её. Всё это стресс конечно. Почему?. . .
Знаете, от чего появляется стресс?
kumehtar 15.07.2026
Стресс появляется оттого, что вы, зная как поступить правильно, делаете наоборот. Ларри Уингет
Нас бьют, а мы крепчаем? Какая чушь!
kumehtar 15.07.2026
Вот это вот бытующее мнение, что человек меняется только под действием проблем, всегда считал вредоносным. Поверь, от проблем у людей появляются не изменения, а нервное расстройство и ПТСР. А. . .
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров В текущей версии модели успешно реализован ключевой механизм. . .
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям Реализованные компоненты: Механизм закисления почвы через протонную помпу Конкуренция между типами микориз pH как триггер сукцессии C/ P соотношение. . .
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru