Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Работа с массивом

52K
10 февраля 2012 года
Gevorg
22 / / 10.04.2011
Задание такое : дано некоторое число n , затем вводится n чисел , после этого вводится два числа a и b.
Нужно : среди этих n чисел отсортировать по возрастанию и вывести те , которые меньше a ; отсортировать по убыванию и вывести те , которые больше b.
Вот мой код. Он работает(все делал через массивы) . Ошибок и предупреждений нет . С сортировкой тоже проблем нет . Проблема с нахождением чисел в массиве(почему-то программа либо игнорирует число , которое в принципе нам подходит , либо выводит ересь типа -6.27744e+066) . Даже не знаю , в чем ошибка . Вроде бы с точки зрения алгоритма все не так уж и плохо ) В любом случае , надеюсь на авторитетное мнение профессионалов )
Код:
#include<iostream.h>
int main()
{
        const int n = 5;
        double arr[n];
       
        cout<<"Enter the array :"<<endl;                
        for(int i=0;i<n;i++) cin>>arr;              
        cout<<"You have entered array :"<<endl;
        for(i=0;i<n;i++) cout<<arr<<endl;
 
        double a,b;
        cout<<"Enter a and b :"<<endl;
        cin>>a>>b;
 
        int n1=0;
        int n2=0;      
       
                for(i=0;i<n;i++) {
                        if(arr<=a) n1++;
        }
 
        for(i=0;i<n;i++) {
                        if(arr>=b) n2++;
        }
       
        double * m1 = new double[n1];
        double * m2 = new double[n2];
 
        int s1=0;
        int s2=0;
 
        while (s1<n1 ) {
        for( i=0;i<n;i++) {
                if(arr<=a) m1[s1]=arr;s1++;}
        }
 
        while (s2<n2 ) {
        for( i=0;i<n;i++) {
                if(arr>=b) m2[s2]=arr;s2++;}
        }
       
cout<<"*****The first sequence*****"<<endl;
 
                for(i=0;i<n1-1;i++){
                        int i_min=i;
                        for(int j=i+1;j<n1;j++)
                                if(m1[j]<m1[i_min]) i_min=j;
                                double tmp=m1;
                                m1=m1[i_min];
                                m1[i_min]=tmp;
                }
 
                for(i=0;i<n1;i++)  cout<<m1<<endl;
       
cout<<"*****The second sequence*****"<<endl;
 
                for(i=0;i<n-1;i++){
                        int i_max=i;
                        for(int j=i+1;j<n2;j++)
                                if(m2[j]>m2[i_max]) i_max=j;
                                double tmp=m2;
                                m2=m2[i_max];
                                m2[i_max]=tmp;
                }
 
for( i=0;i<n2;i++) cout<<m2<<endl;
 
return 0;
}
1
11 февраля 2012 года
kot_
7.3K / / 20.01.2000
где здесь поиск?
341
11 февраля 2012 года
Der Meister
874 / / 21.12.2007
Скобки фигурные, видимо-невидимо, ставить будет Александр Сергеевич.
Поиска у вас действительно нет.
Какбэ с основами программирования у нас обычно пишут в ветку "Студентам"
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог