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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Raikerian
9 / 9 / 1
Регистрация: 10.05.2011
Сообщений: 101
#1

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

23.04.2012, 18:21. Просмотров 440. Ответов 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
// 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, при-нимающей значения целого типа:
Подскажите как прочитать целочисленное значение из string. C++
C++ Как написать функцию, которая бы получала на входе целочисленное число, а возвращала бы значение суммы цифр куба этого числа?
Для данного вещественного x найти значение функции f C++
Доделать задачу. Для данного вещественного x найти значение следующей функции f, принимающей значения целого типа C++
C++ Вместо нуля выводит непонятное число
Вместо результата выводит непонятное число C++
Вместо значений массива в cout выводит адреса C++
Описать функцию Exp1(x,eps) вещественного типа, находящую приближенное значение функции exp(x) C++
C++ Выводит INF вместо значения
Напишите функцию, которая получает на вход строку цифр, и возвращает соответствующее целочисленное значение C++
Программа, которая выводит на экран значение функции sizeof от типов short, int, long и тд 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     Выводит целочисленное значение вместо вещественного (функции)
Ответ Создать тему
Опции темы

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