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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.56
vetal0007
28 / 28 / 1
Регистрация: 11.02.2012
Сообщений: 317
#1

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

21.05.2013, 22:24. Просмотров 1242. Ответов 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);
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.05.2013, 22:24
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сформировать одномерный массив целых чисел, используя датчик случайных чисел (C++):

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

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

Сформировать одномерный массив целых чисел, используя датчик случайных чисел - C++
1) Сформировать одномерный массив целых чисел, используя датчик случайных чи-сел. 2) Распечатать полученный массив. 3) Удалить элементы...

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

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

Сформировать одномерный массив целых случайных чисел - C++
Сформировать одномерный массив целых случайных чисел. Удалить все элементы , большие данного числа x ( x ввести с клавиатуры )...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
21.05.2013, 22:27 #2

Не по теме:

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


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

Сформировать одномерный массив целых чисел, используя ввод данных с клавиатуры - C++
Найти в массиве наибольшее число подряд идущих одинаковых элементов (например {1,5,3,6,6,6,6,6,3,4,4,5,5,5} = 5). Заранее большое спасибо.

Преобразовать одномерный массив вещественных случайных чисел в массив целых чисел - C++
Преобразовать одномерный массив вещественных случайных чисел в массив целых чисел больших исходных на два порядка. Напечатать массивы в два...

Используя датчик случайных чисел, запол*нить массив из двадцати -элементов неповторяющи*мися числами - C++
Используя датчик случайных чисел, запол*нить массив из двадцати -элементов неповторяющи*мися числами.

Сформировать массив случайных целых чисел в заданном диапазоне - C++
Такая вот задачка не получается решить(написать) её. (хочу понять-разобраться что и как) Сформировать массив А из 20 случайных целых...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
24.05.2013, 23:24
Ответ Создать тему
Опции темы

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