Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.11.2010, 18:06   #1
ВасяСВВ
Пользователь
 
Регистрация: 18.10.2010
Сообщений: 33
Вопрос оптимизация

Добрый день.
Нужно помочь с программкой.
Я ее написал, все работает лишь в последней функции необходимо отредактировать код, чтобы программа работала через одну функцию.
Завдяння
В одномерном массива, состоящего из n действительных чисел, вычислить:
1. Номер максимального по модулю элемента масивуж
2. сумму элементов массива, которые розмищювались после первого положительного элемента.
3. превратить массив таким образом чтобы сначала розмищювалися все элементы, целая часть которых лежит в интервале [a, b] и все остальные.


Код:
#include<iostream.h>
int masuv['n'];
int i,x,k,y,n,s,indmax;
main1() {       //Введення масиву
 cout<< "Vvedit kilkist elementiv masuva : ";
 cin >>n;
 for (i=0;i<n;i++){
  masuv[i]=rand()%20-5;
  cout<<i<<"="<<masuv[i]<<endl;
 }
}
main2() {       //Визначення максимального елемента по модулю
 x=abs(masuv[0]);
 for (i=0;i<n;i++) {
  y=abs(masuv[i]);
    if(y>x) {
     x=masuv[i];
     indmax=i;
   }
 }
cout<<"Nomer maxsumalnoho po modyly elementa: "<<indmax<<endl;
 }
main3() {       //сума елементів масиву які знаходяться після першого додатного
 for(i=0;i<n;i++){
  if (masuv[i]>0){
    k=i;
      for(k;k<n;k++){
       s+=masuv[k];}
    break; }
   }
cout<<"Suma :"<<s<<endl;
  }

main4() {       //перетворення масива щоб спочатку розміщювалися елементи проміжку, а потім всі інші
 int e,d;
 float a,b;
 cout<<"Vvedit promizok [a,b] \n";
 cout<<"a: ";
 cin>>a;
 cout<<"b: ";
 cin>>b;
  i=0;


  for(int d=0;d<n;d++){
  if((masuv[d]>a)&&(masuv[d]<b))
  cout<<masuv[d]<<endl;
   }
  for(d=0;d<n;d++){
   if(masuv[d]<a)
   cout<<masuv[d]<<endl;
    }
  for(d=0;d<n;d++){
   if(masuv[d]>b)
   cout<<masuv[d]<<endl;
     }
  }

 main() {
 main1();
 main2();
 main3();
 main4();
 system("Pause");
}
дякую!!!

Последний раз редактировалось ВасяСВВ; 02.11.2010 в 21:07.
ВасяСВВ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как конвертировать массив символов в массив байт davinci C++ Builder 6 30.10.2010 18:09
Одномерный массив , двухмерный массив Woxx Паскаль, Turbo Pascal, PascalABC.NET 0 10.09.2010 09:28
Одномерный массив. Q basic - Построить новый массив из элементов исходного ,которые больше P. Marishkaa Помощь студентам 2 12.01.2010 16:54
Двумерный массив, одномерный массив. Branbal Помощь студентам 14 18.11.2009 12:40
Упорядочить массив в порядке возрастания и напечатать входной и исходный массив. TheVenny Помощь студентам 3 26.11.2008 15:06