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

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

Войти
Регистрация
Восстановить пароль
 
Tamplar
5 / 5 / 1
Регистрация: 02.08.2008
Сообщений: 45
#1

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

25.12.2008, 22:16. Просмотров 521. Ответов 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;
}
Суть проблеми: Первий и второй максимум отбражают одинаковие значения

Помогите пожалуста уже голова от етого болит
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.12.2008, 22:16     Помогите найти ошибку в программе
Посмотрите здесь:

Помогите найти ошибку в программе составления палиндрома числа C++
C++ помогите найти ошибку в программе
Помогите найти ошибку в программе! (С++) C++
C++ Помогите найти ошибку в моей программе
C++ Структуры. Помогите найти ошибку в программе
C++ Помогите найти ошибку в программе. Вычисление формулы.
C++ Помогите найти ошибку в программе
C++ Помогите найти ошибку в программе вычисления значения функции
C++ Помогите найти ошибку в программе сортировки массива
C++ Помогите найти ошибку в программе
C++ Помогите найти ошибку в программе нахождения остатка от деления на 12
Помогите найти ошибку в программе C++

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

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

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