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

Не понял ошибку - C++

Восстановить пароль Регистрация
 
xzibka
0 / 0 / 0
Регистрация: 26.11.2012
Сообщений: 20
26.12.2012, 07:56     Не понял ошибку #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
64
65
66
67
68
69
70
71
#include <stdio.h>
#include <iostream>
#include <conio.h>
 
 
 
 
int main(int argc, char* argv[])
{
    float arr[100];
    int n;
 
    cout << "VVedite n(<100): ";
    cin >> n;
 
    cout << "VVedite massiv: ";
    for (int i = 0; i < n; i++)
        cin >> arr[i];
 
    int n0 = 0;
    for (int i = 0; i < n; i++)
        if (arr[i] == 0)
            n0++;
 
    cout << "\nKolichestvo elementov massiva ravnih 0: " << n0 << "\n";
 
    float min = arr[0], sum = 0;
    int mini = 0;
 
    // Г*Г*õîäèì ГЁГ*äåêñ ìèГ*ГЁГ¬Г*ëüГ*îãî ýëåìåГ*ГІГ*
    for (int i = 1; i < n; i++)
        if (min > arr[i]) { min = arr[i]; mini = i; }
 
    cout << "\nMinimal`nij element: " << min << " indeks: " << mini << "\n";
 
    for (int i = mini; i < n; i++)
        sum += arr[i];
 
    cout << "\nSumma elementov posle minimal`nogo: " << sum << "\n";
 
    // ñîðòèðîâêГ*
    float tmp;
    for (int i = 0; i < n; i++)
    {
        min = arr[i];
        mini = i;
 
        for (int j = i + 1; j < n; j++)
            if (abs(min) > abs(arr[j]))
            {
                min = arr[j];
                mini = j;
            }
 
        tmp = arr[i];
        arr[i] = min;
        arr[mini] = tmp;
    }
 
    // Г¬Г*Г±Г±ГЁГў, óïîðÿäî÷åГ*Г*ûé ГЇГ® âîçðГ*Г±ГІГ*Г*ГЁГѕ ìîäóëåé ýëåìåГ*òîâ
    cout << "\nMassiv, uporyadochennij po vozrastaniu elementov:\n";
 
    for (int i = 0; i < n; i++)
        cout << arr[i] << " ";
    
 
 
    getch();
 
    return 0;
}
выдает ошибку по чему то компилятор помогите пишет что в
C++
1
2
3
4
5
6
for (int j = i + 1; j < n; j++)
            if (abs(min) > abs(arr[j]))
            {
                min = arr[j];
                mini = j;
            }
допущена ошибка после оператора if помогите разобраться
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
0x10
2425 / 1597 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
26.12.2012, 08:01     Не понял ошибку #2
1. Подключить заголовочный файл cmath.
2. Для переменных типа float использовать fabsf.
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
26.12.2012, 10:49     Не понял ошибку #3
Цитата Сообщение от 0x10 Посмотреть сообщение
Для переменных типа float использовать fabsf.
Лучше перегрузить abs.
0x10
2425 / 1597 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
26.12.2012, 10:56     Не понял ошибку #4
Смотрел сишные маны, по факту в cmath перегружена fabs http://www.cplusplus.com/reference/cmath/fabs/
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
26.12.2012, 11:06     Не понял ошибку #5
А надо бы плюсовые. И когда это сионисты признали перегрузку?
Yandex
Объявления
26.12.2012, 11:06     Не понял ошибку
Ответ Создать тему
Опции темы

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