Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Tamplar
5 / 5 / 5
Регистрация: 02.08.2008
Сообщений: 45
#1

Помогите найти ошибку в программе - C++

25.12.2008, 22:16. Просмотров 560. Ответов 4
Метки нет (Все метки)

Задание: найти по модулю первый и второй максимальний елемент динамичного массива!


Код:
Код
 #include <math.h>
#include <iostream.h>

int main()
{
   int n,i,imax,imax2;
   float max,max2;
   float modul=0;  
   
   cout<<"Input Rozmirnist masivy\n";
   cin>>n;

   float *y = new float[n];

   cout<<"Masiv"<<endl;
//-----------------------------------------------------------
   for(i=1; i<=n; i++)  //инициализация массива
   {                                                                   
     y[i]=12.6*sin(fabs(i/2.9))-8.3*cos(1.8)*i;

     cout<<"["<<i<<"]="<<y[i]<<endl;
   }
//--------------------------------------------------
  //поиск первого максимума
   imax=1;
   max=fabs(y[1]);


   for(i=1; i<=n; i++)
   {
       modul=y[i];

       if(modul>max){
        max=modul; imax=i;}
   }
   cout<<"Maximym=["<<imax<<"]="<<max<<endl;
//---------------------------------------------------
    //поиск второго максимума
   max2=fabs(y[1]);
   modul=0;
   imax2=1;

   for(i=1;i<=n;i++)
   {
      modul=y[i];
       if(modul>max2 && max2!=max){
           max2=modul; imax2=i;}
   }
       cout<<"Maximym=["<<imax2<<"]="<<max2<<endl;
   return 0;
}
Суть проблеми: Первий и второй максимум отбражают одинаковие значения

Помогите пожалуста уже голова от етого болит
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.12.2008, 22:16
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Помогите найти ошибку в программе (C++):

Помогите найти ошибку в программе
Помогите мне найти ошибку) Реализовать необходимо на С++ #include &lt;iostream&gt; ...

Помогите найти ошибку в программе
подскажите почему не работает? #include &lt;stdio.h&gt; #include &lt;conio.h&gt; void...

помогите найти ошибку в программе
#include &lt;cstdlib&gt; #include &quot;CMatrix.h&quot; #include &lt;conio.h&gt; //Руссификация...

Помогите найти ошибку в программе! (С++)
Найти строку с минимальной суммой элементов #include&lt;iostream&gt; using...

Помогите найти ошибку в программе
вводятся фамилия имя отчество, определить самое редкое имя. Что не так, почему...

Структуры. Помогите найти ошибку в программе
3. Сведения об экзамене содержат следующие данные: дисциплину...

4
XuTPbIu_MuHTAu
Эксперт С++
2234 / 749 / 25
Регистрация: 27.05.2008
Сообщений: 1,498
25.12.2008, 22:20 #2
Код
   for(i=1; i<=n; i++)  //инициализация массива
Массивы нумеруются с нуля....т.е так :
Код
   for(i=0; i<n; i++)  //инициализация массива
0
Tamplar
5 / 5 / 5
Регистрация: 02.08.2008
Сообщений: 45
25.12.2008, 22:25  [ТС] #3
Поставил я нумирацыю с 0,ошибка всё таже может ето у меня что с скомпилятором что то он игнориррует етот
Код
  if(modul>max2 && max2!=max)
0
XuTPbIu_MuHTAu
Эксперт С++
2234 / 749 / 25
Регистрация: 27.05.2008
Сообщений: 1,498
25.12.2008, 22:27 #4
Он не игнорирует.
Код
  if(modul>max2 && max2!=max)
здесь ты сравниваешь max2 и max, но в max2 еще не записан тот елемент, на который
ты сейчас смотришь.нужно:
Код
 if(modul>max2 && modul!=max)
в твоей терминологии
1
Tamplar
5 / 5 / 5
Регистрация: 02.08.2008
Сообщений: 45
25.12.2008, 22:31  [ТС] #5
Ти прав теперь всё работает СПАСИБО БОЛЬШОЕ
0
25.12.2008, 22:31
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.12.2008, 22:31
Привет! Вот еще темы с решениями:

Помогите найти ошибку в моей программе
#include&lt;iostream.h&gt; #include&lt;conio.h&gt; #include&lt;math.h&gt; struct uravn...

Помогите найти ошибку в программе. Вычисление формулы.
Написал программу, которая считает формулу, но она не работает. Компилятор...

Помогите найти ошибку в программе сортировки массива
Помогите с++ срочно! не сортирует массив! // ConsoleApplication18.cpp:...

Помогите найти ошибку в программе(выдает не правильный результат)
Есть задача. часть ее просто посчитать а. Тестовые данные: при а=3, б=1.99179,...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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