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

Функция с переменным числом параметров - C++

Восстановить пароль Регистрация
 
snoop9x
0 / 0 / 0
Регистрация: 03.12.2010
Сообщений: 14
03.12.2010, 21:12     Функция с переменным числом параметров #1
Написать функцию sum с переменным числом параметров, которая находит сумму заданных обыкновенных дробей. Написать вызывающую функцию main, которая обращается к функции sum не менее трех раз с количеством параметров 5, 10, 12.

уже столько над ней сижу и все ни как не получается, люди добрые помогите!!!!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lemegeton
 Аватар для lemegeton
2908 / 1337 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
03.12.2010, 22:28     Функция с переменным числом параметров #2
А где твой класс, реализовывающий операции с обыкновенными дробями?

(Инклуды левые -- из другой программы.)

Набросок.
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
#include <iostream>
#include <vector>
#include <string>
#include <iomanip>
#include <sstream>
#include <limits>
#include <algorithm>
#include <time.h>
 
using namespace std;
 
int Gcd(int a, int b) { return b == 0 ? a : Gcd(b, a % b); }
 
class fraction
{
    int dividend;
    int divisor;
 
public:
    fraction(int dividend, int divisor) { this->dividend = dividend; this->divisor = divisor; }
 
    fraction &optimize()
    {
        int gcd = Gcd(dividend, divisor);
        dividend /= gcd;
        divisor  /= gcd;
        return *this;
    }
 
 
    fraction &operator=(const fraction &a)
    {
        this->dividend = a.dividend;
        this->divisor = a.divisor;
        return *this;
    }
 
    friend fraction operator+(const fraction &a, const fraction &b)
    {
        fraction f = fraction(a.dividend*b.divisor+a.divisor*b.dividend, a.divisor*b.divisor);
        return f.optimize();
    }
 
    friend ostream &operator<<(ostream &o, fraction &f)
    {
        o << f.dividend << "/" << f.divisor;
        return o;
    }
};
 
fraction sum(fraction *a, ...)
{
    fraction **p = &a;
    fraction s = *(*p++);
    while (*p!=0)
    {
        s = s + **p;
        p++;
    }
    return s;
}
 
int main()
{
    srand(static_cast<unsigned int>(time(0)));
 
    fraction a(rand()%10+1, 5), b(rand()%10+1, 5);
    cout << (a+b) << endl;
    cout << sum(&a, &b, 0) << endl;
 
    system("pause");
}
snoop9x
0 / 0 / 0
Регистрация: 03.12.2010
Сообщений: 14
20.12.2010, 23:28  [ТС]     Функция с переменным числом параметров #3
Написать функцию sum с переменным числом параметров, которая находит сумму заданных обыкновенных дробей. Написать вызывающую функцию main, которая обращается к функции sum не менее трех раз с количеством параметров 5, 10, 12.
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
#include "stdafx.h"
#include <iostream>
#include <vector>
#include <string>
#include <iomanip>
#include <sstream>
#include <limits>
#include <algorithm>
#include <time.h>
 
using namespace std;
 
int Gcd(int a, int b) { return b == 0 ? a : Gcd(b, a % b); }
 
class fraction
{
        int dividend;
        int divisor;
 
public:
        fraction(int dividend, int divisor) { this->dividend = dividend; this->divisor = divisor; }
 
        fraction &optimize()
        {
                int gcd = Gcd(dividend, divisor);
                dividend /= gcd;
                divisor  /= gcd;
                return *this;
        }
 
 
        fraction &operator=(const fraction &a)
        {
                this->dividend = a.dividend;
                this->divisor = a.divisor;
                return *this;
        }
 
        friend fraction operator+(const fraction &a, const fraction &b)
        {
                fraction f = fraction(a.dividend*b.divisor+a.divisor*b.dividend, a.divisor*b.divisor);
                return f.optimize();
        }
 
        friend ostream &operator<<(ostream &o, fraction &f)
        {
                o << f.dividend << "/" << f.divisor;
                return o;
        }
};
 
fraction sum(fraction *a, ...)
{
        fraction **p = &a;
        fraction s = *(*p++);
        while (*p!=0)
        {
                s = s + **p;
                p++;
        }
        return s;
}
 
int main()
{
        srand(static_cast<unsigned int>(time(0)));
 
        fraction a(rand()%10+1, 5), b(rand()%10+1, 5);
        cout << (a+b) << endl;
        cout << sum(&a, &b, 0) << endl;
 
        system("pause");
        return 0;
}
что то не работает, помогите исправить...
deadlock
 Аватар для deadlock
372 / 351 / 7
Регистрация: 14.12.2010
Сообщений: 1,265
20.12.2010, 23:30     Функция с переменным числом параметров #4
та же самая задача:
Функции с переменным числом параметров
snoop9x
0 / 0 / 0
Регистрация: 03.12.2010
Сообщений: 14
20.12.2010, 23:35  [ТС]     Функция с переменным числом параметров #5
Здесь не совсем то же самое, я не знаю как посчитать сумму обыкновенных дробей. А нельзя ли переделать ту программу под это условие?
Yandex
Объявления
20.12.2010, 23:35     Функция с переменным числом параметров
Ответ Создать тему
Опции темы

Текущее время: 15:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru