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

Процедура. Не могу вычислить ошибку - C++

Восстановить пароль Регистрация
 
RomeoJamper
0 / 0 / 0
Регистрация: 02.11.2015
Сообщений: 16
03.11.2015, 00:04     Процедура. Не могу вычислить ошибку #1
Задание:Описать процедуру PowerA234(A, B, C, D), вычисляющую вторую, третью и четвертую степень числа A и возвращающую эти степени соответственно в переменных B, C и D (A — входной, B, C, D — выходные параметры; все параметры являются вещественными). С помощью этой процедуры найти вторую, третью и четвертую степень пяти данных чисел.
Имеется написанный код,но нерабочий,скажите в чем проблема? Если это возможно,помогите сделать досконально,спасибо.
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
#include "stdafx.h"
#include <iostream>
#include <conio.h>
using std::cout;
using std::endl;
using std::cin;
void Power(float a, float *b, float *c,
    float *d);
int main(void)
{
    int i;
    float a, b, c, d;
    cout << "a= ";
    i = 1;
    while (i <= 5) {
        cin >> a;
        i++;
    }
    Power(a, &b, &c, &d);
    cout << "b = ";
    return 0;
}
void Power(float a, float *b, float *c,
    float *d)
{
    *b = a*a;
    *c = a*a*a;
    *d = a*a*a*a;
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.11.2015, 00:04     Процедура. Не могу вычислить ошибку
Посмотрите здесь:

C++ Не могу найти ошибку
C++ не могу найти ошибку
C++ не могу понять ошибку
Не могу найти ошибку C++
Не могу найти ошибку C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Fyret
184 / 170 / 13
Регистрация: 30.07.2013
Сообщений: 359
03.11.2015, 00:11     Процедура. Не могу вычислить ошибку #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
А теперь напишем это на C++:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
 
void power(float a, float& b, float& c, float& d)
{
    b = a * a;
    c = b * a;
    d = c * a;
}
 
int main()
{
    std::cout << "a = ";
    float a;
    std::cin >> a;
 
    float b, c, d;
    power(a, b, c, d);
 
    std::cout << "b = " << b << std::endl;
    std::cout << "c = " << c << std::endl;
    std::cout << "d = " << d << std::endl;
    return 0;
}
По-моему, достаточно просто и понятно.
AlexKolc
117 / 158 / 67
Регистрация: 14.09.2013
Сообщений: 282
03.11.2015, 00:14     Процедура. Не могу вычислить ошибку #3
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
#include "stdafx.h"
#include <iostream>
#include <conio.h>
using std::cout;
using std::endl;
using std::cin;
void Power(float a, float *b, float *c, float *d);
 
int main(void) {
    int i;
    float a, b, c, d;
    /*cout << "a= ";*/ //почему вне while?
    i = 1;
    while (i <= 5) {
        cout << "a = ";
        cin >> a;
        Power(a, &b, &c, &d);
        cout << "b = " << b << endl;
        cout << "c = " << c << endl;
        cout << "d = " << d << endl;
        i++;
    }
    /*Power(a, &b, &c, &d); // почему вне while?
    cout << "b = ";*/       //
    return 0;
}
void Power(float a, float *b, float *c, float *d) {
    *b = a*a;
    *c = a*a*a;
    *d = a*a*a*a;
}
Kerry_Jr
Модератор
 Аватар для Kerry_Jr
1858 / 1654 / 577
Регистрация: 14.05.2014
Сообщений: 4,753
Записей в блоге: 1
Завершенные тесты: 5
03.11.2015, 00:15     Процедура. Не могу вычислить ошибку #4
Цитата Сообщение от Fyret Посмотреть сообщение
А теперь напишем это на C++:
только вместо float лучше использовать double.
RomeoJamper
0 / 0 / 0
Регистрация: 02.11.2015
Сообщений: 16
03.11.2015, 00:55  [ТС]     Процедура. Не могу вычислить ошибку #5
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
#include "stdafx.h"
#include <iostream>
#include <conio.h>
using std::cout;
using std::endl;
using std::cin;
void Power(float a, float *b, float *c, float *d)
{
    *b = a*a;
    *c = a*a*a;
    *d = a*a*a*a;
}
int main(void)
{
    setlocale(LC_ALL, "Russian");
    int i;
    float a, b, c, d;
    i = 1;
    while (i <= 5) 
    {
        cout << "a = ";
        cin >> a;
        Power(a, &b, &c, &d);
        cout << "Вторая степень числа а=";
        cout << b << endl;
        cout << "Третья степень числа а=";
        cout << c << endl;
        cout << "Четвертая степень числа а=";
        cout << d << endl;
        i++;
    }
    cout << "Нажмите любую клавишу для выхода";
    _getch();
    return 0;
}
Спасибо за ваши идеи. Переделал свой код.
gru74ik
Модератор
 Аватар для gru74ik
3120 / 1346 / 167
Регистрация: 20.02.2013
Сообщений: 3,837
Записей в блоге: 17
03.11.2015, 01:20     Процедура. Не могу вычислить ошибку #6
RomeoJamper, как вариант:
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
#include <iostream>
 
struct Powers
{
    double m_square = 0;
    double m_cube = 0;
    double m_fourth = 0;
 
    friend std::ostream & operator<<(std::ostream & os, const Powers & p)
    {
        os << "b = " << p.m_square << "\n"
           << "c = " << p.m_cube << "\n"
           << "d = " << p.m_fourth << "\n";
 
        return os;
    }
 
};
 
Powers calc_powers(double a)
{
    Powers result;
 
    result.m_square = a * a;
    result.m_cube = result.m_square * a;
    result.m_fourth = result.m_cube * a;
 
    return result;
}
 
int main()
{
    std::cout << "a = ";
    double a;
    std::cin >> a;
 
    std::cout << calc_powers(a);
 
    return 0;
}
Yandex
Объявления
03.11.2015, 01:20     Процедура. Не могу вычислить ошибку
Ответ Создать тему
Опции темы

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