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

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

Войти
Регистрация
Восстановить пароль
 
 
MishkaSh
0 / 0 / 0
Регистрация: 19.02.2013
Сообщений: 129
#1

В чем ошибка? - C++

07.05.2013, 14:31. Просмотров 344. Ответов 15
Метки нет (Все метки)

Нужно найти индекс максимального по модулю элемента массива, но почему то не работает. В чем ошибка? Вот код:
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>
using namespace std;
 
int main()
{
    setlocale (0,"RUS");
    int i,j,k,max=0;
    const int n=15;
    double A[n];
    cout<<"Введите массив вещественных чисел\n";
    
    for (i=0; i<n; i++)
    {
        cin>>A[i];
        if (A[i]>0) k=i;
    }
    for (i=1; i<n; i++)
        if (fabs(A[i])>fabs(A[max])) max=i;
    cout<<"Индекс наибольшего по модулю числа в данном массиве "<<max<<endl;
 
    
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.05.2013, 14:31     В чем ошибка?
Посмотрите здесь:

В чем ошибка? - C++
#include &quot;stdafx.h&quot; #include&lt;iostream&gt; #include&lt;math.h&gt; #include&lt;conio.h&gt; using namespace std; int _tmain(int argc, _TCHAR*...

В чем ошибка?? - C++
Имеется код, создается файл, в него записываются данные. Программа компилируется в VS2010 ...

В чем ошибка?.. - C++
Не понимаю в чем ошибка,на экран выводится набор цифр ,а не то что надо.Как сделать код правильным? Результат вывода программы я выложу в...

В чем ошибка? - C++
#include &lt;iostream&gt; #include &lt;string&gt; using std::string; int main() { string str1 = &quot;axhfkshfnd&quot;; int g = 0; while...

в чем ошибка? - C++
#include &lt;iostream&gt; #include &lt;cmath&gt; using namespace std; int main(){ int a,b,h,y; cin»a»b»h; for(int i=a; i&lt;=b; i+=h) { ...

В чем ошибка - C++
Я пытаюсь вывести элементы массива в обратном порядке, в чем моя ошибка Добавлено через 10 секунд #include &lt;iostream&gt; using...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
mokojumbot
157 / 157 / 15
Регистрация: 09.11.2012
Сообщений: 1,001
07.05.2013, 14:39     В чем ошибка? #2
нету сейчас компилятора под рукой..

1. смысл 15 строки не понимаю
2. емнип, прототип fabs() находится в <math.h>, <cmath>
3. зачем столько переменных? Хватит же массива, переборщика и максимального значения

C
1
2
3
4
5
6
7
for (i=0; i<n; i++)
        cin>>A[i];
 
    for (i=0; i<n; i++)
        if (fabs(A[i]) > fabs(max)) max = fabs(A[i]);
 
    cout<<"Индекс наибольшего по модулю числа в данном массиве "<<max<<endl;
и я не понял, max должно быть равно исходному числу или по модулю?
MishkaSh
0 / 0 / 0
Регистрация: 19.02.2013
Сообщений: 129
07.05.2013, 14:43  [ТС]     В чем ошибка? #3
Цитата Сообщение от mokojumbot Посмотреть сообщение
нету сейчас компилятора под рукой..

1. смысл 15 строки не понимаю
2. емнип, прототип fabs() находится в <math.h>, <cmath>
3. зачем столько переменных? Хватит же массива, переборщика и максимального значения

C
1
2
3
4
5
6
7
for (i=0; i<n; i++)
        cin>>A[i];
 
    for (i=0; i<n; i++)
        if (fabs(A[i]) > fabs(max)) max = fabs(A[i]);
 
    cout<<"Индекс наибольшего по модулю числа в данном массиве "<<max<<endl;
и я не понял, max должно быть равно исходному числу или по модулю?
По модулю, и именно индекс, а не максимальное число
programina
1914 / 599 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
07.05.2013, 14:45     В чем ошибка? #4
i надо присвоить ноль после первого цикла!

Добавлено через 1 минуту
ой, не надо!
chizz
980 / 494 / 54
Регистрация: 19.03.2013
Сообщений: 3,084
Записей в блоге: 18
Завершенные тесты: 1
07.05.2013, 14:50     В чем ошибка? #5
Цитата Сообщение от programina Посмотреть сообщение
i надо присвоить ноль после первого цикла!
- не надо, все нормуль. сравнение начинается с A[max] A[1], где max = 0.

+ объявить cmath
#include <cmath>

и 15 строчка непонятно зачем. можно убрать.
MishkaSh
0 / 0 / 0
Регистрация: 19.02.2013
Сообщений: 129
07.05.2013, 14:51  [ТС]     В чем ошибка? #6
Цитата Сообщение от chizz Посмотреть сообщение
- не надо, все нормуль. сравнение начинается с A[max] A[1], где max = 0.

+ объявить cmath
#include <cmath>

и 15 строчка непонятно зачем. можно убрать.
И все равно не помогло
mokojumbot
157 / 157 / 15
Регистрация: 09.11.2012
Сообщений: 1,001
07.05.2013, 14:53     В чем ошибка? #7
MishkaSh, а! не разобрался. тогда

C
1
2
3
4
5
6
for (i=0; i<n; i++)
        if (fabs(A[i]) > max)
        {
          max = fabs(A[i]);
          maxindex = i;
        }
maxindex в итоге должен быть индексом первого максимального значения в массиве
chizz
980 / 494 / 54
Регистрация: 19.03.2013
Сообщений: 3,084
Записей в блоге: 18
Завершенные тесты: 1
07.05.2013, 14:54     В чем ошибка? #8
Цитата Сообщение от MishkaSh Посмотреть сообщение
И все равно не помогло
Пожалуйста пишите на что ругается, какая среда разработки

Не тот индекс выводит? индекс начинается с 0.
У второго элемента в массиве индекс 1.
MishkaSh
0 / 0 / 0
Регистрация: 19.02.2013
Сообщений: 129
07.05.2013, 14:55  [ТС]     В чем ошибка? #9
Цитата Сообщение от chizz Посмотреть сообщение
Пожалуйста пишите на что ругается, какая среда разработки
С++, он не правильно находится индекс числа
BabyGluk
26 / 26 / 4
Регистрация: 10.04.2013
Сообщений: 167
07.05.2013, 14:55     В чем ошибка? #10
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
// ccc.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
#include<math.h>
#include<iostream>
using namespace std;
void main(){
    setlocale (0,"RUS");
    const int n=5; int maxI(0);
    double A[n];
    cout<<"Введите массив вещественных чисел\n";
    for (int i=0; i<n; i++)
    {
        cin>>A[i];
    }
double  max = abs(A[0]);
    for (int i=0; i<n; i++) 
        cout<<A[i]<<" abs = "<<abs(A[i])<<"   ";
    for (int i=0; i<n; i++)
        if (abs(A[i]) > max) maxI=i;
    cout<<endl<<"Индекс наибольшего по модулю числа в данном массива =  "<<maxI<<endl;
 
    system("pause");
    }
так или нет?
MishkaSh
0 / 0 / 0
Регистрация: 19.02.2013
Сообщений: 129
07.05.2013, 14:57  [ТС]     В чем ошибка? #11
Цитата Сообщение от BabyGluk Посмотреть сообщение
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
// ccc.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
#include<math.h>
#include<iostream>
using namespace std;
void main(){
    setlocale (0,"RUS");
    const int n=5; int maxI(0);
    double A[n];
    cout<<"Введите массив вещественных чисел\n";
    for (int i=0; i<n; i++)
    {
        cin>>A[i];
    }
double  max = abs(A[0]);
    for (int i=0; i<n; i++) 
        cout<<A[i]<<" abs = "<<abs(A[i])<<"   ";
    for (int i=0; i<n; i++)
        if (abs(A[i]) > max) maxI=i;
    cout<<endl<<"Индекс наибольшего по модулю числа в данном массива =  "<<maxI<<endl;
 
    system("pause");
    }
так или нет?
Нет так нельзя
mokojumbot
157 / 157 / 15
Регистрация: 09.11.2012
Сообщений: 1,001
07.05.2013, 14:57     В чем ошибка? #12
зачем переборов то столько?
одним вводим значения, другим ищем максимальное. что ж за привычка усложнять всё

выше же написал, как нужно
MishkaSh
0 / 0 / 0
Регистрация: 19.02.2013
Сообщений: 129
07.05.2013, 15:00  [ТС]     В чем ошибка? #13
Цитата Сообщение от mokojumbot Посмотреть сообщение
зачем переборов то столько?
одним вводим значения, другим ищем максимальное. что ж за привычка усложнять всё

выше же написал, как нужно
У тебя находит максимальное число, а мне надо индекс по модулю максимальный, например введу 5454 и 99 и он должен вывести что максимальный индекс 9
mokojumbot
157 / 157 / 15
Регистрация: 09.11.2012
Сообщений: 1,001
07.05.2013, 15:01     В чем ошибка? #14
Цитата Сообщение от MishkaSh Посмотреть сообщение
У тебя находит максимальное число, а мне надо индекс по модулю максимальный, например введу 5454 и 99 и он должен вывести что максимальный индекс 9
5454 это 0 индекс массива
99 это 1 индекс

ответ должен быть "0" тогда.

выше прочитай, там именно индекс массива и находим.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.05.2013, 15:02     В чем ошибка?
Еще ссылки по теме:

в чем ошибка? - C++
#include &quot;stdafx.h&quot; #include &lt;stdio.h&gt; #include &lt;iostream&gt; #include &lt;math.h&gt; using namespace std; int _tmain(int argc, _TCHAR*...

В чем ошибка? - C++
char* deleter(char *str) { char *god; for(int i = 0;i &lt; strlen(str);i++) { if(str == '1' || str == '2' || str == '3' || str...

в чем ошибка? - C++
Дано целое позитивное число n. Составить алгоритм вычисления суммы В чем ошибка в коде?#include &lt;iostream&gt; #include &lt;conio.h&gt; ...

В чем ошибка? - C++
Нужно рассчитать общее количество часов выбранного предмета. Выводит 0. void __fastcall TForm3::rashet_btClick(TObject *Sender) { ...


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

Или воспользуйтесь поиском по форуму:
chizz
980 / 494 / 54
Регистрация: 19.03.2013
Сообщений: 3,084
Записей в блоге: 18
Завершенные тесты: 1
07.05.2013, 15:02     В чем ошибка? #15
индекс это номер элемента в массиве.
Yandex
Объявления
07.05.2013, 15:02     В чем ошибка?
Ответ Создать тему
Опции темы

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