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

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

Войти
Регистрация
Восстановить пароль
 
n0n4m3r
25 / 25 / 6
Регистрация: 12.10.2013
Сообщений: 183
#1

Не работает fabs - C++

08.12.2013, 00:52. Просмотров 575. Ответов 6
Метки нет (Все метки)

Задание: найти максимальный по модулю элемент массива и вывести его номер.
Результат на скрине. Кусок кода там же. Если надо - могу предоставить весь.
Миниатюры
Не работает fabs  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.12.2013, 00:52     Не работает fabs
Посмотрите здесь:

Неправильно работает оператор fabs() - C++
К примеру программа: #include<iostream> #include<math> using namespace std; void main () { float x; cin >>...

ошибка с fabs - C++
Приветствую. Проблема в обще в том, что вылетает ошибка вовремя выполнения проги на отмеченной строчке. В принципе в этой функции мне нужно...

Функция fabs! - C++
Здравствуйте, объясните пожалуйста, как можно проще, что из себя представляет ф-ция fabs! Если можно, то с элементарными примерами...

Использование функции fabs - C++
Как исправить? Вот код #include <iostream> #include <conio.h> #include <ctime> #include <cstdlib> #include <cmath> ...

Конечные суммы на С++, fabs() - C++
Подскажите,пожалуйста,в чем ошибка? #include <stdafx.h> #include <stdio.h> #include <math.h> int _tmain(int argc,...

Что за функция fabs(int)? - C++
Что за функция fabs(int)?

Тип выводимых данных. abs() и fabs() - C++
Здравствуйте, столкнулся с такой проблей при выводе через cout данных типа double выводится почемуто только 2 знака после запятой(хотя их...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
HidForce
56 / 56 / 13
Регистрация: 17.11.2012
Сообщений: 1,603
08.12.2013, 01:00     Не работает fabs #2
n0n4m3r, давайте весь код!
kazak
3032 / 2353 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
08.12.2013, 01:05     Не работает fabs #3
n0n4m3r, у Вас там с индексами массива большая путаница.
n0n4m3r
25 / 25 / 6
Регистрация: 12.10.2013
Сообщений: 183
08.12.2013, 01:09  [ТС]     Не работает fabs #4
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#include <iostream>
#include <ctime>
#include <cmath>
#include <iomanip>
 
using namespace std;
 
int main(){
    setlocale(LC_ALL,"Russian");
    int num, a, b, pos=0, i=0, maxn;
    float summ=0;
    cout << "Введите количество элементов массива: ";
    cin >> num;
    float *mass = new float[num];
    srand (time(NULL));
    cout << endl << "Выберите способ заполнения массива:\nM - вручную;\nA - автоматически;\nЛюбая другая клавиша - завершить работу: ";
    char option;
    cin >> option;
 
 
        switch(option){
        case 'm': case 'M':
            {
                cout << "Вы выбрали ручное заполнение массива!" << endl;
                for(int i=0; i<num;i++){
                    cout << "Введите " << i+1 << " элемент: ";
                    cin >> mass[i];
                }
                break;
            }
        case 'a': case 'A':
            {
                cout << "Вы выбрали автоматическое заполнение массива!" << endl;
                for(int i=0; i<num; i++){
                    mass[i]=(rand()%10000-5000)*pow(0.1,rand()%3);
                    cout << "Элемент " << i+1 << " равен " << setw(8) << mass[i] << endl;
                }
                break;
            }
        default: 
            break;
 
        }
 
 
        //Задание 1:
        float max=fabs(mass[0]);
        maxn=1;
        for (i=0; i<num-1;i++){
            if (max < fabs(mass[i+1])){
                maxn=i+1;
                max=mass[i];
            }
        }
        
        cout << "Номер максимального элемента по модулю: " << maxn << endl;
 
        //Задание 2:
        while(mass[pos]<0)
            pos++;
        
        for(i=pos; i<num; i++)
            summ+=mass[i];
        cout << "Сумма всех чисел после первого положительного равна " << summ << endl << endl;
 
        //Задание 3:
        cout << endl << "А теперь немного посортируем!\nВведите меньшее значение интервала сортировки: ";
        cin >> a;
        cout << "Теперь большее: ";
        cin >> b;
        i=0;
        do{
            if(floor(mass[i]) >= a && floor(mass[i]) <= b)
                cout << mass[i] << endl;
            i++;
        }while(i<num);
        i=0;
        do{
            if(floor(mass[i]) < a || floor(mass[i]) > b)
                cout << mass[i] << endl;
            i++;
        }while(i<num);
        //end
 
 
        system("pause");
        return 0;
 
    }
Весь код
kazak
3032 / 2353 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
08.12.2013, 01:12     Не работает fabs #5
Цитата Сообщение от n0n4m3r Посмотреть сообщение
float max=fabs(mass[0]);
maxn=1;
for (i=0; i<num-1;i++){
if (max < fabs(mass[i+1])){
maxn=i+1;
max=mass[i];
}
}

cout << "Номер максимального элемента по модулю: " << maxn << endl;
C++
1
2
3
4
5
6
7
8
9
float max=fabs(mass[0]);
* * * * maxn=0;
* * * * for (i=1; i<num;i++){
* * * * * * if (max < fabs(mass[i])){
* * * * * * * * maxn=i;
* * * * * * * * max=fabs(mass[i]);
* * * * * * }
* * * * }
cout << "Номер максимального элемента по модулю: " << maxn+1 << endl;
Alex566
240 / 152 / 18
Регистрация: 03.04.2013
Сообщений: 317
08.12.2013, 01:13     Не работает fabs #6
C++
1
2
3
4
5
  int max=0;
  for(int i=1;i<n;i++)
      if(fabs(mass[i])>fabs(mass[max]))
          max=i;
  cout<<"Max = "<<mass[max];
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.12.2013, 01:23     Не работает fabs
Еще ссылки по теме:

Неправильное вычисление уравнения (atan, acos, fabs) - C++
Доброго времени суток. Столкнулся с проблемой, программа не правильно считает уравнение, а ошибку найти не могу. Уже кучу всего...

Какую библиотеку подключить для использования fabs? - C++
в C++ какую библиотеку надо подключить чтобы использовать fabs()?

Как работает функция fabs(); ? - C (СИ)
Очень хочу узнать как работает функция fabs(); или, если это возможно, подкиньте идею как ее можно сообразить самому с помощью...

Есть ли функция fabs() в С#? - C#
А еще вопрос почему не получается конвертировать строковый массив string mas = new string; в тип double, если допустим mas = 1, а не 1.0 ???

Ошибка в задаче: Найти мин. k, которое будет удовлетворять условию: fabs(правая часть - левая часть) < 10^(-15) - C++
Задача: k изменяется от 0 до бесконечности ((4k+1)! / ^2) * x^2k = =1/2* X принадлежит интервалу (-1/4 ; 1/4) Найти мин....


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

Или воспользуйтесь поиском по форуму:
n0n4m3r
25 / 25 / 6
Регистрация: 12.10.2013
Сообщений: 183
08.12.2013, 01:23  [ТС]     Не работает fabs #7
Цитата Сообщение от kazak Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
float max=fabs(mass[0]);
* * * * maxn=0;
* * * * for (i=1; i<num;i++){
* * * * * * if (max < fabs(mass[i])){
* * * * * * * * maxn=i;
* * * * * * * * max=fabs(mass[i]);
* * * * * * }
* * * * }
cout << "Номер максимального элемента по модулю: " << maxn+1 << endl;
Все равно выдает какое-то случайное максимальное число.
Сейчас указал на номер элемента со значением -1.14

Добавлено через 7 минут
Заработало, огромное спасибо!
Остановился на варианте
C++
1
2
3
4
5
6
int max=0;
        for (int i=1; i<num; i++)
            if(fabs(mass[i])>fabs(mass[max]))
                max=i;
        
        cout << "Номер максимального элемента по модулю: " << max+1 << endl;
Yandex
Объявления
08.12.2013, 01:23     Не работает fabs
Ответ Создать тему
Опции темы

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