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

Перенос двузначных элементов массива в новый - C++

Восстановить пароль Регистрация
 
jayson
0 / 0 / 0
Регистрация: 09.03.2010
Сообщений: 26
28.03.2010, 13:02     Перенос двузначных элементов массива в новый #1
всем привет!у меня есть прога которая автоматом заполняет массив и сортирует его по возрастанию,как сделать чтоб из этого массива все 2значные элементы перенести в новый массив и вывести на экран

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
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
void main()
{
        const int max_elem=20;
        int mas[max_elem];
        for(int i=0;i<max_elem;i++)
        {
                mas[i]=rand()%200;
        }
 
        int n;
        for(int cur=0;cur<max_elem;cur++)
                for(int n=0;n<max_elem-1;n++)
 
                        if(mas[n]>mas[n+1])
                        {
                                int t=mas[n];
                                mas[n]=mas[n+1];
                                mas[n+1]=t;
 
                        }
 
       
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.03.2010, 13:02     Перенос двузначных элементов массива в новый
Посмотрите здесь:

Сформировать новый массив из элементов массива C++
Перенос определенных элементов массива в другой массив C++
Создать функцию, которая возвращает количество двузначных элементов массива C++
C++ Новый масив из уникальных элементов другого массива
C++ Найти среднее арифметическое двузначных элементов целочисленного массива из 30 элементов
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Maksss
1 / 1 / 0
Регистрация: 27.03.2010
Сообщений: 6
28.03.2010, 13:16     Перенос двузначных элементов массива в новый #2
Задай условие, где I>9, и просто записывай в новый массив
jayson
0 / 0 / 0
Регистрация: 09.03.2010
Сообщений: 26
28.03.2010, 13:26  [ТС]     Перенос двузначных элементов массива в новый #3
можно поподробней
From_Tula
40 / 40 / 2
Регистрация: 22.05.2009
Сообщений: 469
28.03.2010, 13:26     Перенос двузначных элементов массива в новый #4
Вот попробуй в n_mas будут все дввухзначные числа

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
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
void main()
{
        const int max_elem=20;
        int mas[max_elem],n_mas[max_elem];
        for(int i=0,j=0;i<max_elem;i++,j++)
        {
                mas[i]=rand()%200;
 
                if (mas[i]>9 && mas[i]<100)
                n_mas[j]=mas[i]; //занесение в новый массив
        }
 
        int n;
        for(int cur=0;cur<max_elem;cur++)
                for(int n=0;n<max_elem-1;n++)
 
                        if(mas[n]>mas[n+1])
                        {
                                int t=mas[n];
                                mas[n]=mas[n+1];
                                mas[n+1]=t;
 
                        }
 
       
}
jayson
0 / 0 / 0
Регистрация: 09.03.2010
Сообщений: 26
28.03.2010, 14:48  [ТС]     Перенос двузначных элементов массива в новый #5
спасибо вроде работает,вот только как вывести ,я должен написать-cout<<n_mas;?
или другую переменную?я вписываю это перед закрытием ифа,но выводит хрень какуюто
From_Tula
40 / 40 / 2
Регистрация: 22.05.2009
Сообщений: 469
28.03.2010, 15:06     Перенос двузначных элементов массива в новый #6
все эл ты массива ты должен выводить по индексам...
Я не знаю проходили вы функции или нет, так что вот если хочешь вывести сделай так

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
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
 
void out (int n, int mas[20]);
void main()
{
        const int max_elem=20;
        int mas[max_elem],n_mas[max_elem];
        for(int i=0,j=0;i<max_elem;i++,j++)
        {
                mas[i]=rand()%200;
 
                if (mas[i]>9 && mas[i]<100)
                n_mas[j]=mas[i]; //занесение в новый массив
        }
 
        int n;
        for(int cur=0;cur<max_elem;cur++)
                for(int n=0;n<max_elem-1;n++)
 
                        if(mas[n]>mas[n+1])
                        {
                                int t=mas[n];
                                mas[n]=mas[n+1];
                                mas[n+1]=t;
 
                        }
 
out(n,n_mas);// вызов функции вывода
 
       
}
 
 
 
void out (int n, int mas[20])
{
int i;
  for (i=0;i<n;i++)
  {
   printf ("%5d",mas[i]);
  }
}
jayson
0 / 0 / 0
Регистрация: 09.03.2010
Сообщений: 26
28.03.2010, 16:02  [ТС]     Перенос двузначных элементов массива в новый #7
выдает ошибку:
mas:выглядит как определение функции,но без списка параметров.пропускается вероятное тело функции
И printf не подсвечивается синим
From_Tula
40 / 40 / 2
Регистрация: 22.05.2009
Сообщений: 469
28.03.2010, 16:50     Перенос двузначных элементов массива в новый #8
Попробуй так

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
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
const int max_elem=20;
 
void out (int n, int mas[max_elem]);
void main()
{
        
        int mas[max_elem],n_mas[max_elem];
        for(int i=0,j=0;i<max_elem;i++,j++)
        {
                mas[i]=rand()%200;
 
                if (mas[i]>9 && mas[i]<100)
                n_mas[j]=mas[i]; //занесение в новый массив
        }
 
        int n;
        for(int cur=0;cur<max_elem;cur++)
                for(int n=0;n<max_elem-1;n++)
 
                        if(mas[n]>mas[n+1])
                        {
                                int t=mas[n];
                                mas[n]=mas[n+1];
                                mas[n+1]=t;
 
                        }
 
out(n,n_mas);// вызов функции вывода
 
       
}
 
 
 
void out (int n, int mas[max_elem])
{
int i;
  for (i=0;i<n;i++)
  {
   cout <<mas[i] ;
  }
}
jayson
0 / 0 / 0
Регистрация: 09.03.2010
Сообщений: 26
28.03.2010, 17:05  [ТС]     Перенос двузначных элементов массива в новый #9
компилируется успешно но при запуске выдает ошибку

можно просто из отсортированого мною массива(немного продолжить мой вариант) выбрать в новый 2значные элементы не усложняя функциями,или еще чемнибудь?и каутом вывести
позарез на завтра нужно
neske
1419 / 786 / 55
Регистрация: 26.03.2010
Сообщений: 2,694
28.03.2010, 17:44     Перенос двузначных элементов массива в новый #10
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
#include <stdafx.h>
#include <iostream>
#include <stdlib.h>
#include <ctime>
using namespace std;
int main()
{
        const int max_elem=20;
        int mas[max_elem];
                srand(time(NULL));
        for(int i=0; i<max_elem; i++)  // заполнение массива.
        {
                mas[i]=rand()% 200;
        }
 
 
         
        for(int cur=0;cur<max_elem;cur++)  // сортировка массива.
                        
                for(int n=0;n<max_elem-1;n++)
 
                        if(mas[n]>mas[n+1])
                        {
                                int t=mas[n];
                                mas[n]=mas[n+1];
                                mas[n+1]=t;
                        }
 
                int mas_ch[max_elem]; // создаем второй массив, для четных чисел.
 
                for (int j=0; j<max_elem; j++)
                {
                        if ((mas[j]>9) && (mas[j]<100))  // проверка.
                        {
                                mas_ch[j]=mas[j];          // если двухзначное, то присваиваем значение второму массиву,
                                cout << mas_ch[j] << endl;         // и выводим.
                        }
                }
return 0;
        
}
Может-быть код не очень красивый, но я сам только учусь. Главное работает
jayson
0 / 0 / 0
Регистрация: 09.03.2010
Сообщений: 26
28.03.2010, 17:56  [ТС]     Перенос двузначных элементов массива в новый #11
спасибо большое,работает,но с начала вылетала ошибка-неудаеться открыть файл stdafx.h,я удалил строку #include <stdafx.h>и заработало!так правильно?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.03.2010, 20:24     Перенос двузначных элементов массива в новый
Еще ссылки по теме:

C++ Запись элементов массива структурного типа.Из старого массива- в новый
Из нечётных чисел заданного массива создать новый массив и посчитать количество элементов нового массива C++
C++ Перенос элементов из статического массива в динамический

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

Или воспользуйтесь поиском по форуму:
neske
1419 / 786 / 55
Регистрация: 26.03.2010
Сообщений: 2,694
28.03.2010, 20:24     Перенос двузначных элементов массива в новый #12
Да, правильно, я добавляю эту строку, т.к. без нее у меня ругается компилятор.
Yandex
Объявления
28.03.2010, 20:24     Перенос двузначных элементов массива в новый
Ответ Создать тему
Опции темы

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