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

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

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

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

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

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

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

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

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

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

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

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

14
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];
}
0
MILAN
886 / 780 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
24.09.2010, 10:15 #3
вот еще

Сортировка и еще
0
wild_flower
0 / 0 / 0
Регистрация: 14.09.2010
Сообщений: 36
25.09.2010, 12:20  [ТС] #4
все конечно здорово)
я не пойму как работают функции, ну сделала парочку функций, что то они там обрабатывают... как их вызвать то???
например в данном случае?
0
asics
Freelance
Эксперт С++
2848 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
25.09.2010, 12:32 #5
Код в студию,будем разбиратсо.
0
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;
    }
0
asics
Freelance
Эксперт С++
2848 / 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();
    }
0
wild_flower
0 / 0 / 0
Регистрация: 14.09.2010
Сообщений: 36
25.09.2010, 13:07  [ТС] #8
Asics^, setlocale(LC_ALL,"Russian"); это я так понимаю что то вроде кодировки?

Добавлено через 1 минуту
Asics^, выводит ошибку на getch();
0
asics
Freelance
Эксперт С++
2848 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
25.09.2010, 13:11 #9
wild_flower, Да,ето для руских букв в консоли.
Я так понимаю у тебя студия ?У меня етот код в студии тоже не работает,если есть DevC++ компиль там.
0
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;
}
0
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;
}
0
wild_flower
0 / 0 / 0
Регистрация: 14.09.2010
Сообщений: 36
27.09.2010, 10:22  [ТС] #12
dihlofos, а вызвать данную функцию в int main() можно таким образом
cout<<newmassive(a,n);
0
dihlofos
Бродяга
303 / 257 / 17
Регистрация: 27.08.2010
Сообщений: 553
27.09.2010, 10:36 #13
Ф-ция возвращает void, что вы хотите вывести с помощью cout? Можно вызвать просто newmassive(a,n); - весь вывод на экран уже внутри ф-ции.
1
wild_flower
0 / 0 / 0
Регистрация: 14.09.2010
Сообщений: 36
28.09.2010, 01:03  [ТС] #14
можно записать int*a и int*b=new int[j] не в виде ссылок и указателей?
или по другому никак?
0
dihlofos
Бродяга
303 / 257 / 17
Регистрация: 27.08.2010
Сообщений: 553
28.09.2010, 05:55 #15
Можно сделать статические массивы, например: int a[100], b[100]. Здесь 100 - это размер массива. Но этот самый размер мы заранее не знаем, так как его вводит пользователь. Массив размером больше 100 в данном случае не будет работать. Поэтому лучше использовать динамическое выделение памяти.
0
28.09.2010, 05:55
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.09.2010, 05:55
Привет! Вот еще темы с ответами:

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

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

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

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


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

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

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