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

Выводит целочисленное значение вместо вещественного (функции) - C++

Восстановить пароль Регистрация
 
Raikerian
9 / 9 / 1
Регистрация: 10.05.2011
Сообщений: 101
23.04.2012, 18:21     Выводит целочисленное значение вместо вещественного (функции) #1
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
// 1-2.cpp: Отдельные функции
//
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
int i;
void Input(int *Mas, int size)
{
    for (i=0; i<size; ++i)
    {
ret:    *(Mas+i) = rand()%20-5;
        for (int j=0; j<i; ++j)
            if (*(Mas+i)==*(Mas+j)) goto ret;
    }
}
void Output(int *Mas, int size)
{
    for (i=0; i<size; ++i)
        cout << *(Mas+i) << " ";
    cout << endl;
}
double funct(int *Mas, int size)
{
    int imax = 0,
        imin = 0;
    for (i=1; i<size; ++i)
    {
        if (*(Mas+imax)<*(Mas+i)) imax = i;
        if (*(Mas+imin)>*(Mas+i)) imin = i;
    }
    return *(Mas+imax)/(imax+1)+*(Mas+imin)/(imin+1);
}
int main()
{
    setlocale(LC_ALL, "");
    srand(time(NULL));
    int N, M;
    cout << "Введите размер массива A: ";
    cin >> N;
    cout << "Введите размер массива B: ";
    cin >> M;
    void (*par)(int *, int);
    par = Input;
    int *A = new int [N],
        *B = new int [M];
    (*par)(A, N);
    (*par)(B, M);
    par = Output;
    cout << "\nМассив A:" << endl;
    (*par)(A, N);
    cout << "\nМассив B:" << endl;
    (*par)(B, M);
    double (*par2)(int *, int) = funct;
    cout << "\nОтвет:" << endl
         << "z для массива A[N]: " << (*par2)(A, N) << endl
         << "z для массива B[M]: " << (*par2)(B, M) << endl;
    delete [] A;
    delete [] B;
    cin.sync();
    cin.get();
    return 0;
}
собственно z для обоих массивов должна быть вещественной (проверял на калькуляторе), но программа считает все целочисленно (округляет). Вроде бы функции вещественного типа задал. Просьба помочь найти, где именно допущенна ошибка.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.04.2012, 18:21     Выводит целочисленное значение вместо вещественного (функции)
Посмотрите здесь:

C++ Для данного вещественного x найти значение следующей функции f, при-нимающей значения целого типа:
C++ Для данного вещественного х найти значение следущей функции f, принимающей значение целого типа:
C++ описать функцию cos1(x,eps) вещественного типа (параметры x,eps- вещественные,eps>0 ),находящую приближенное значение функции cos(x):
Подскажите как прочитать целочисленное значение из string. C++
[C++]Для данного вещественного x найти значение следующей функции f C++
Доделать задачу. Для данного вещественного x найти значение следующей функции f, принимающей значения целого типа C++
шаблон функции. Задачей функции является округление вышеуказанного вещественного числа с заданной точностью C++
Описать функцию Exp1(x,eps) вещественного типа, находящую приближенное значение функции exp(x) C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
denys_l
51 / 51 / 4
Регистрация: 26.09.2011
Сообщений: 186
23.04.2012, 18:29     Выводит целочисленное значение вместо вещественного (функции) #2
что за z, поди разбери...
По коду, функция
C++
1
double funct(int *Mas, int size)
принимает два целочисленных аргумента и потом уже в самой функции все манипуляции проходят опять таки над целочисленными данными. При каких условиях тут должно появиться вещественное число неизвестно

Добавлено через 3 минуты
как вариант - можно 1 в делителе записать как 1.0, тогда все переменные в выражении, по идее, должны будут привестись к вещественному типу
Raikerian
9 / 9 / 1
Регистрация: 10.05.2011
Сообщений: 101
23.04.2012, 18:33  [ТС]     Выводит целочисленное значение вместо вещественного (функции) #3
Благодарю! Теперь понял насчет этого в функциях)
1.0 именно то что нужно)
Yandex
Объявления
23.04.2012, 18:33     Выводит целочисленное значение вместо вещественного (функции)
Ответ Создать тему
Опции темы

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