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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.72
wild_flower
0 / 0 / 0
Регистрация: 14.09.2010
Сообщений: 36
#1

Упорядочивание массива - C++

24.09.2010, 02:21. Просмотров 2413. Ответов 14
Метки нет (Все метки)

дан массив вещественных чисел требуется написать функции, которые
1. упорядочивают по убыванию
2.упорядочивают по возрастанию
3.создадут новый массив, элементы которого будут те элементы первого массива,
которые больше среднего значения всех элементов
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.09.2010, 02:21     Упорядочивание массива
Посмотрите здесь:

Упорядочивание массива - C++
Что не так?((( #include <iostream> using namespace std; int main() { int n,i,j,c; int a={}; ...

С++ упорядочивание массива - C++
ребят, в чём дело, упорядочиваю массив, а вылезают одинаковые числа, в чём ошибка? #include <iostream> using namespace std; int...

Упорядочивание массива - C++
Дан массив размера N. Вывести вначале его элементы с четными1|нечетными2 индексами, а затем — с нечетными1|четными2.

Упорядочивание элементов массива - C++
Постановка задачи. Разработать программу, которая вводит целочисленную матрицу из n строк и m столбцов (1<n<=100, 1<m<=50) и...

Преобразование (упорядочивание) массива - C++
Добрые люди! Написала код, каждое задание лабораторной надо оформить в виде функции, первые 2 функции работают так, как нужно :). Третья...

Задачи на упорядочивание двумерного массива - C++
Задача заключается в упорядочивании всех элементов двумерного массива по возрастанию. Собственно говоря, выдает ошибку, которую никак не...

Упорядочивание всего массива по убыванию - C++
Что нужно сделать чтобы упорядочить этот массив по убыванию? #include <stdio.h> #include <conio.h> #include <math.h> main() { ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vet
175 / 175 / 13
Регистрация: 08.04.2009
Сообщений: 1,309
24.09.2010, 03:42     Упорядочивание массива #2
Большая коллекция решенных задач

Не по теме:

Компилятора под рукой нету поэтому тока наброски 3-й, а по ссылке смотри 1-ю и 2-ю, а на будущее пользуйтесь поиском, таких задач решено множество


3-я
C++
1
2
3
4
5
6
7
8
9
for(int i=0;i<N;i++)
{
     sum += mas[i];
}
sred = sum/N;
for(int i=0;i<N;i++)
{
    if(mas[i]>sred) mas_new[i]=mas[i];
}
MILAN
885 / 779 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
24.09.2010, 10:15     Упорядочивание массива #3
вот еще

Сортировка и еще
wild_flower
0 / 0 / 0
Регистрация: 14.09.2010
Сообщений: 36
25.09.2010, 12:20  [ТС]     Упорядочивание массива #4
все конечно здорово)
я не пойму как работают функции, ну сделала парочку функций, что то они там обрабатывают... как их вызвать то???
например в данном случае?
asics
Freelance
Эксперт С++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
25.09.2010, 12:32     Упорядочивание массива #5
Код в студию,будем разбиратсо.
wild_flower
0 / 0 / 0
Регистрация: 14.09.2010
Сообщений: 36
25.09.2010, 12:34  [ТС]     Упорядочивание массива #6
Asics^, это конечно может бред сумасшедшего, но я только учусь....не судите строго)


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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
// func.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
#include <iostream>
#include <Windows.h>
#include <math.h>
using namespace std;
const int n=5;
 
int sortirovka()
        
    {int x,j;
  for( j = 1; j > n; j++ ) {   
      if ( mass[j-1] > mass[j] ) {
      x=mass[j-1]; mass[j-1]=mass[j]; mass[j]=x;
    }
return x;
  }}
 
int sred();
int new_mass();
int _tmain(int argc, _TCHAR* argv[])
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    
    int a,i;
    int mass[n];
    for(i=0; i<n;i++){
        cin>>a;
        mass[i]=a;
        }
    int sred(){
    for(int i=0;i<N;i++)
{
     sum += mass[i];
}
sred = sum/n;
return sred;
    }
 
    int new_mass(){
        int mas_new[]=0;
    for(int i=0;i<n;i++)
{
    if(mass[i]>sred) mas_new[i]=mass[i];
}
    return mass_new[i];
    }
    
return 0;
    }
asics
Freelance
Эксперт С++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
25.09.2010, 12:55     Упорядочивание массива #7
Ану попробуйте вот так
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#include "stdafx.h"
#include <iostream>
#include <conio.h>
using namespace std;
 
void funcplus(int a[],int n)
{
 for( int i = n - 1; i >= 1; i--)
          for(int j = 0; j < i; j++)
                {
                  
                     if(a[j] > a[j+1])
                     {
                         int buffer = a[j];
                     a[j] = a[j+1];
                     a[j+1] = buffer;
                     }
                 }
                              cout << endl;
                              cout << "По возрастанию:"<<endl;
                              for( int i = 0; i < n; i++)
                                cout << a[i] << " ";
                              cout<<endl;
}
void funcminus(int a[], int n)
{
 for( int i = n - 1; i >= 1; i--)
     for(int j = 0; j < i; j++)
       {
                  
           if(a[j] < a[j+1])
           {
            int buffer = a[j];
            a[j] = a[j+1];
            a[j+1] = buffer;
           }
       }
                 cout << endl;
                 cout << "По убыванию:"<<endl;
                 for( int i = 0; i < n; i++)
                    cout << a[i] << " ";
                 cout<<endl;
} 
 
int main()
{
    setlocale(LC_ALL,"Russian");
    cout<<"Программа,сортирующая массив в порядке возрастания или убывания"<<endl;
 char s,p,t;
  do{//Для ввода своего значения
    int*a;
    int n=0;
    cout<<"Введите размерность массива:";
    cin>>n;
    a=new int[n];
      for (int i=0;i<n;i++)
      {
          cout<<"a["<<i<<"]=";
       cin>>a[i]; 
      }
 
     do{
             cout<<"Как будем сортировать?(Если по возрастанию,то жмем(+),по убыванию,то(-):";
             cin>>s;
            if (s == '+') 
                        funcplus(a,n);
                                    
            else if (s == '-')  
                        funcminus(a,n);
            
            cout<<"С этим массивом будем работать?(y/n):";
            cin>>t;                        
     }while(t =='y');                 
            cout<<"Хотите продолжить?(y/n):";
             cin>>p;
              }while (p == 'y');
  getch();
    }
wild_flower
0 / 0 / 0
Регистрация: 14.09.2010
Сообщений: 36
25.09.2010, 13:07  [ТС]     Упорядочивание массива #8
Asics^, setlocale(LC_ALL,"Russian"); это я так понимаю что то вроде кодировки?

Добавлено через 1 минуту
Asics^, выводит ошибку на getch();
asics
Freelance
Эксперт С++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
25.09.2010, 13:11     Упорядочивание массива #9
wild_flower, Да,ето для руских букв в консоли.
Я так понимаю у тебя студия ?У меня етот код в студии тоже не работает,если есть DevC++ компиль там.
wild_flower
0 / 0 / 0
Регистрация: 14.09.2010
Сообщений: 36
27.09.2010, 09:47  [ТС]     Упорядочивание массива #10
а разве нельзя просто вызвать функцию так например:
cout<<funcminus(a,n)<<endl;
и еще я написала функцию, которая выводит новый массив. В новом массиве выводятся те элементы первоначального массива,которые больше среднего значения. Но она выводит тот же старый массив
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
void newmassive(int a[],int n){
    
for( int i = n - 1; i >= 1; i--)
     for(int j = 0; j < i; j++){
          
        int sum=0;
     sum += a[j];
 
     double sred =(double) sum/n;
       
    
 
    if(a[j]>sred){ 
             
        int x=a[j];
    x=a[j];}
    
}
 
cout<<"Nov massive"<<endl;
  for( int i = 0; i < n; i++)
                    cout << a[i] << " ";
                 cout<<endl;
}
dihlofos
Бродяга
303 / 257 / 17
Регистрация: 27.08.2010
Сообщений: 553
27.09.2010, 10:09     Упорядочивание массива #11
Если нужен новый массив, то наверное его нужно создать, например, массив b. И в него уже заносить элементы из массива a. Как нибудь так...
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
26
27
28
29
30
31
32
33
34
void newmassive(int a[],int n)
{
    int sum=0,j=0,i;
    double sred;
 
    for(int i = 0; i < n; i++) // Подсчёт суммы
        sum += a[i];
    sred =(double)sum/n;   // Среднее
 
 
    for(i = 0; i < n; i++)  // Подсчёт размера массива b
        if(a[i]>sred)
            j++;
 
    int *b = new int[j];    // Выделение памяти под b
    j=0;
    for(i = 0; i < n; i++)  // Заполнение массива b
    {
        if(a[i]>sred)
        {
           b[j]=a[i];
           j++;
        }
    }
 
    cout<<"Srednee = "<<sred<<endl;
 
    cout<<"Nov massive"<<endl;    // Вывод массива b
    for(i = 0; i < j; i++)
        cout << b[i] << " ";
    cout<<endl;
 
    delete []b;
}
wild_flower
0 / 0 / 0
Регистрация: 14.09.2010
Сообщений: 36
27.09.2010, 10:22  [ТС]     Упорядочивание массива #12
dihlofos, а вызвать данную функцию в int main() можно таким образом
cout<<newmassive(a,n);
dihlofos
Бродяга
303 / 257 / 17
Регистрация: 27.08.2010
Сообщений: 553
27.09.2010, 10:36     Упорядочивание массива #13
Ф-ция возвращает void, что вы хотите вывести с помощью cout? Можно вызвать просто newmassive(a,n); - весь вывод на экран уже внутри ф-ции.
wild_flower
0 / 0 / 0
Регистрация: 14.09.2010
Сообщений: 36
28.09.2010, 01:03  [ТС]     Упорядочивание массива #14
можно записать int*a и int*b=new int[j] не в виде ссылок и указателей?
или по другому никак?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.09.2010, 05:55     Упорядочивание массива
Еще ссылки по теме:

Задачи на упорядочивание двумерного массива - C++
Нужно упорядочить все элементы двумерного массива по возрастанию. Программа не запускается, никак не могу найти ошибку. void z7 (int m,...

Упорядочивание массива структур по нескольким полям - C++
Есть программа,которая сортирует студентов по году рождения. #include &lt;conio.h&gt; #include &lt;iostream&gt; #include &lt;stdio.h&gt; const int...

Упорядочивание массива c++. Объясните код программы - C++
Дан целочисленный одномерный массив из n элементов (1&lt;=n&lt;=100). Задание: Не нарушая порядка следования, расположить в начале массива все...

Присвоение элементов одного массива другому и упорядочивание их в конкретном алгоритме - C++
Дано: есть массив X из 10 элементов всегда рандомных чисел, элементы массива X присвоить массиву Y и упорядочить в таком алгоритме:...

упорядочивание по алфавиту - C++
как элементы структуры типа char упорядочить по алфавиту? О_о


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

Или воспользуйтесь поиском по форуму:
dihlofos
Бродяга
303 / 257 / 17
Регистрация: 27.08.2010
Сообщений: 553
28.09.2010, 05:55     Упорядочивание массива #15
Можно сделать статические массивы, например: int a[100], b[100]. Здесь 100 - это размер массива. Но этот самый размер мы заранее не знаем, так как его вводит пользователь. Массив размером больше 100 в данном случае не будет работать. Поэтому лучше использовать динамическое выделение памяти.
Yandex
Объявления
28.09.2010, 05:55     Упорядочивание массива
Ответ Создать тему
Опции темы

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