Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
vetal0007
29 / 29 / 3
Регистрация: 11.02.2012
Сообщений: 339
1

Сформировать одномерный массив целых чисел, используя датчик случайных чисел

21.05.2013, 22:24. Просмотров 1398. Ответов 7
Метки нет (Все метки)

1)Сформировать одномерный массив целых чисел, используя датчик случайных чисел.
2)Распечатать полученный массив.
3)Перевернуть массив и, если число элементов массива нечетное, удалить его средний элемент.
4)Добавить в начало массива 3 элемента с значением M[ I+10 ]-2.
5)Распечатать полученный массив.

Незнаю как сделать 3й пункт
Вот что сделал:

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
#include "stdafx.h"
#include <iostream>
#include <time.h>
#include <stdlib.h>
#define size 10
using namespace std;
int main()
{
    srand(time(NULL));
    int i, a[size];
    cout<<"Massiv: ";
    for(i=0; i<size; i++)
    {
        a[i]=rand()%100-50;
        cout<<a[i]<<" ";
    }
    cout<<"\n";
    cout<<"\nMassiv2 (M[ I+10 ]-2): ";
    for (i = size-2; i >= 0; i--)
        a[i]=a[i-3];
    a[0]=rand()%100-50;
    for (i = 1; i < 3; i++)
    a[i]=a[i-1]+2;
    for (i = 0; i < size-2; i++)
        std::cout << a[i] << ' ';
    std::cout << "\n";
    system ("pause");
    return(0);
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.05.2013, 22:24
Ответы с готовыми решениями:

Сформировать одномерный массив целых чисел, используя датчик случайных чисел
Удалить элементы кратные 7. Добавить после каждого нечетного элемента массива...

Сформировать одномерный массив целых чисел, используя датчик случайных чисел
Условие такое 1.Сформировать одномерный массив целых чисел, используя датчик...

Сформировать одномерный массив целых чисел, используя датчик случайных чисел.
Сформировать одномерный массив целых чисел, используя датчик случайных чисел. ...

Сформировать одномерный массив целых чисел, используя датчик случайных чисел
Сформировать одномерный массив целых чисел, используя датчик случайных...

Сформировать одномерный массив целых чисел, используя датчик случайных чисел
1) Сформировать одномерный массив целых чисел, используя датчик случайных...

7
Tulosba
:)
Эксперт С++
4749 / 3243 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
21.05.2013, 22:27 2

Не по теме:

Цитата Сообщение от vetal0007 Посмотреть сообщение
датчик случайных чисел
Датчиком и не пахнет :D


Стандартные библиотеки использовать можно?
0
vetal0007
29 / 29 / 3
Регистрация: 11.02.2012
Сообщений: 339
21.05.2013, 22:52  [ТС] 3
Да, лишь бы работало) Массив перевернуть удалось. Теперь нужно реализовать условие "если число элементов массива нечетное, удалить его средний элемент"

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
#include "stdafx.h"
#include <iostream>
#include <time.h>
#include <stdlib.h>
#define size 10
using namespace std;
void Reverse(int *a, int *b)
{
   if (a < b)
   {
       *a += *b; *b = *a - *b; *a -= *b;
       Reverse(a + 1, b - 1);
   }
}
int main()
{
    srand(time(NULL));
    int i, a[size],n;
    cout<<"Massiv: ";
    for(i=0; i<size; i++)
    {
        a[i]=rand()%100-50;
        cout<<a[i]<<" ";
    }
    
    cout<<"\n\nPerevernutiy massiv: ";
    n = sizeof(a) / sizeof(*a);
    Reverse(a, a + n - 1);
    for(i = 0; i < n; i++)
    printf("%d ", a[i]);
 
    cout<<"\n\nMassiv2 (M[ I+10 ]-2): ";
    for (i = size-2; i >= 0; i--)
        a[i]=a[i-3];
    a[0]=rand()%100-50;
    for (i = 1; i < 3; i++)
    a[i]=a[i-1]+2;
    for (i = 0; i < size-2; i++)
        std::cout << a[i] << ' ';
    std::cout << "\n";
    system ("pause");
    return(0);
}
0
Tulosba
:)
Эксперт С++
4749 / 3243 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
21.05.2013, 23:00 4
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
#include <algorithm>
#include <iostream>
#include <vector>
 
int main()
{
    int a[] = {1,2,3,4,5};
 
    const int size = sizeof(a)/sizeof(*a);
    std::vector<int> v( a, a + size );
 
    // Переворачиваем
    std::reverse( v.begin(), v.end() );
 
    // Выводим
    for( auto e: v )
    {
        std::cout << e << " ";
    }
    std::cout << std::endl;
 
    // Удаляем середину
    v.erase( v.begin() + v.size()/2 );
 
    // Снова выводим
    for( auto e: v )
    {
        std::cout << e << " ";
    }
 
    std::system( "pause" );
}
1
vetal0007
29 / 29 / 3
Регистрация: 11.02.2012
Сообщений: 339
21.05.2013, 23:16  [ТС] 5
Выводит ошибки
error C2039: i: не является членом "std::vector<_Ty>
error C2039: <<: не является членом "std::vector<_Ty>
error C2039: system: не является членом "std::vector<_Ty>
и тому подобные

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
#include "stdafx.h"
#include <iostream>
#include <time.h>
#include <stdlib.h>
#include <vector>
#define size 10
using namespace std;
void Reverse(int *a, int *b)
{
   if (a < b)
   {
       *a += *b; *b = *a - *b; *a -= *b;
       Reverse(a + 1, b - 1);
   }
}
int main()
{
    srand(time(NULL));
    int i, a[size],n;
    cout<<"Massiv: ";
    for(i=0; i<size; i++)
    {
        a[i]=rand()%100-50;
        cout<<a[i]<<" ";
    }
    
    cout<<"\n\nPerevernutiy massiv: ";
    const int size = sizeof(a)/sizeof(*a);
    std::vector<int> v( a, a + size );
    std::reverse( v.begin(), v.end() );
     for( auto e: v )
    {
        std::cout << e << " ";
    }
    std::cout << std::endl;
    v.erase( v.begin() + v.size()/2 );
    for( auto e: v )
    {
        std::cout << e << " ";
    }
    
    cout<<"\n\nMassiv (M[ I+10 ]-2): ";
    for (i = size-2; i >= 0; i--)
        a[i]=a[i-3];
    a[0]=rand()%100-50;
    for (i = 1; i < 3; i++)
    a[i]=a[i-1]+2;
    for (i = 0; i < size-2; i++)
        std::cout << a[i] << ' '; //error C2039: i: не является членом "std::vector<_Ty>
    std::cout << "\n"; //error C2039: <<: не является членом "std::vector<_Ty>
    system ("pause"); //error C2039: system: не является членом "std::vector<_Ty>
    return(0);
}
0
Tulosba
:)
Эксперт С++
4749 / 3243 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
21.05.2013, 23:35 6
vetal0007, уберите строки 6 и 28. И на место 6 строки вставьте:
C++
1
const int size = 10;
1
vetal0007
29 / 29 / 3
Регистрация: 11.02.2012
Сообщений: 339
24.05.2013, 23:17  [ТС] 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
#include "stdafx.h"
#include <iostream>
#include <time.h>
#include <stdlib.h>
#include <vector>
const int size = 10;
using namespace std;
 
int main()
{
    srand(time(NULL));
    int i, a[size],n;
    cout<<"Massiv: ";
    for(i=0; i<size; i++)
    {
        a[i]=rand()%100-50;
        cout<<a[i]<<" ";
    }
    
           cout<<"\n\nPerevernutiy massiv: ";
    
     std::vector<int> v( a, a + size );
     std::reverse( v.begin(), v.end() );
     for( auto e: v )
    {
        std::cout << e << " ";
    }
        std::cout << std::endl;
 
    cout<<"Deleted: ";
        v.erase( v.begin() + v.size()/2 );
    for( auto e: v )
    {
        std::cout << e << " ";
    }
    
    cout<<"\n\nMassiv (M[ I+10 ]-2): ";
    for (i = size-2; i >= 0; i--)
        a[i]=a[i-3];
        a[0]=rand()%100-50;
        for (i = 1; i < 3; i++)
        a[i]=a[i-1]+2;
        for (i = 0; i < size-2; i++)
        std::cout << a[i] << ' ';
        std::cout << "\n";
    system ("pause");
    return(0);
}
0
Tulosba
:)
Эксперт С++
4749 / 3243 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
24.05.2013, 23:24 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
#include <algorithm>
#include <iostream>
 
int main()
{
    int a[] = {1,2,3,4,5};
 
    const int size = sizeof(a)/sizeof(*a);
 
    // Переворачиваем
    std::reverse( std::begin(a), std::end(a) );
 
    // Выводим
    for( auto e: a )
    {
        std::cout << e << " ";
    }
    std::cout << std::endl;
 
    //Удаляем середину
    for( int i=size/2; i<size; ++i )
    {
        a[i] = a[i+1];
    } 
    
    // Выводим без последнего эл-та
    for( int i=0; i < size-1; ++ i)
    {
        std::cout << a[i] << " ";
    }
    std::cout << std::endl;
 
    std::system( "pause" );
}
1
24.05.2013, 23:24
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.05.2013, 23:24

Сформировать одномерный массив целых случайных чисел
Сформировать одномерный массив целых случайных чисел. Удалить все элементы ,...

Задать массив из 10 вещественных чисел используя датчик случайных чисел
Подсчитать количество четных значений. Найти минимальный и максимальный...

Сформировать одномерный массив целых чисел, используя ввод данных с клавиатуры
Найти в массиве наибольшее число подряд идущих одинаковых элементов (например...


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

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

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