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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.56
vetal0007
27 / 27 / 0
Регистрация: 11.02.2012
Сообщений: 299
21.05.2013, 22:24     Сформировать одномерный массив целых чисел, используя датчик случайных чисел #1
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);
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.05.2013, 22:24     Сформировать одномерный массив целых чисел, используя датчик случайных чисел
Посмотрите здесь:

C++ Сформировать одномерный массив целых чисел, используя датчик случайных чисел
C++ Сформировать одномерный массив целых чисел, используя датчик случайных чисел.
Используя датчик случайных чисел, запол*нить массив из двадцати -элементов неповторяющи*мися числами C++
C++ Сформировать одномерный массив целых чисел, используя датчик случайных чисел
Преобразовать одномерный массив вещественных случайных чисел в массив целых чисел C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
21.05.2013, 22:27     Сформировать одномерный массив целых чисел, используя датчик случайных чисел #2

Не по теме:

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


Стандартные библиотеки использовать можно?
vetal0007
27 / 27 / 0
Регистрация: 11.02.2012
Сообщений: 299
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);
}
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
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" );
}
vetal0007
27 / 27 / 0
Регистрация: 11.02.2012
Сообщений: 299
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);
}
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
21.05.2013, 23:35     Сформировать одномерный массив целых чисел, используя датчик случайных чисел #6
vetal0007, уберите строки 6 и 28. И на место 6 строки вставьте:
C++
1
const int size = 10;
vetal0007
27 / 27 / 0
Регистрация: 11.02.2012
Сообщений: 299
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);
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.05.2013, 23:24     Сформировать одномерный массив целых чисел, используя датчик случайных чисел
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
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" );
}
Yandex
Объявления
24.05.2013, 23:24     Сформировать одномерный массив целых чисел, используя датчик случайных чисел
Ответ Создать тему
Опции темы

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