Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
2 / 2 / 2
Регистрация: 10.04.2012
Сообщений: 147
1

2 маленькие задачки на массивы

08.05.2012, 11:31. Просмотров 684. Ответов 7
Метки нет (Все метки)

1.в массиве поменять max и min элемент и вывести массив до перемещения и после
2.посчитать количество четных элементов стоящих на нечетных местах
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.05.2012, 11:31
Ответы с готовыми решениями:

2 маленькие задачки...
всем привет...помогите написать эти 2 программы...буду очень благодарен... 1. С клавиатуры...

2 мини задачки на массивы
1)Проверить, есть ли в массиве ДВА ПОДРЯД идущих одинаковых элемента. 2)Проверить, содержатся ли в...

Задачки на массивы и циклические циклы
а) Ввести данные о результатах работы магазинов в год. Количество магазинов задастся пользователем...

Лабораторная работа. Массивы (задачки к экзамену)
Здравствуйте товарищи форумчани! Помогите пожалуйста с кодами задачек на экзамен! Задачи: 1)...

7
2 / 2 / 2
Регистрация: 10.04.2012
Сообщений: 147
09.05.2012, 13:47  [ТС] 2
ну решите пожалуйста.
0
13 / 13 / 5
Регистрация: 14.02.2012
Сообщений: 46
09.05.2012, 14:08 3
в 1 задаче найти мин и макс и поменять их местами?
0
Форумчанин
Эксперт CЭксперт С++
8160 / 5008 / 1436
Регистрация: 29.11.2010
Сообщений: 13,458
09.05.2012, 14:14 4
1.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <algorithm>
#include <iterator>
 
int main()
{
   int arr[] = {6, 2, 1, 7, 3, 5, 1, 0, 9, 12, 41, 5, 6, 1, 10};
   std::copy(arr, arr + sizeof(arr) / sizeof(arr[0]), std::ostream_iterator<int>(std::cout, " ")); 
   std::swap(*std::min_element( arr, arr + sizeof(arr) / sizeof(arr[0]) ), *std::max_element( arr, arr + sizeof(arr) / sizeof(arr[0]) ));
   std::cout<< std::endl; 
   std::copy(arr, arr + sizeof(arr) / sizeof(arr[0]), std::ostream_iterator<int>(std::cout, " ")); 
   return 0;
}
2.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <algorithm>
#include <iterator>
 
int main()
{
   int arr[] = {6, 2, 1, 7, 3, 5, 1, 0, 9, 12, 41, 5, 6, 1, 10};
   std::copy(arr, arr + sizeof(arr) / sizeof(arr[0]), std::ostream_iterator<int>(std::cout, " "));
   int count = 0;
   for (unsigned int i=1; i < sizeof(arr) / sizeof(arr[0]); i+=2)
      if(arr[i] % 2  == 0) count++;   
   std::cout<< std::endl<< count; 
   return 0;
}
0
2 / 2 / 2
Регистрация: 10.04.2012
Сообщений: 147
09.05.2012, 20:30  [ТС] 5
да поменять

Добавлено через 5 часов 25 минут
надо массив

Добавлено через 15 секунд
надо массив
0
1065 / 583 / 87
Регистрация: 03.12.2009
Сообщений: 1,255
09.05.2012, 20:48 6
Цитата Сообщение от Maksimyshka Посмотреть сообщение
1.в массиве поменять max и min элемент и вывести массив до перемещения и после
такой вариант вас устроит?

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
#include "iostream"
#include "ctime"
 
using namespace std;
 
int main()
{
    setlocale(0,"");
    srand(time(0));
    const int n = 10;
    int *mas = new int [n];
    int max, maxi;
    int min, mini;
    for(int i = 0; i < n; i++)
    {
        cout << (mas[i] = rand() % 10) << " ";
    }
 
    min = mas[0];
    max = mas[9];
    for(int i = 0; i < n; i++)
    {
        if(mas[i] < min)
        {
            min = mas[i];
            mini = i;
        }
        if(mas[i] > max)
        {
            max = mas[i];
            maxi = i;
        }
    }
    cout << endl;
    cout << "max = " << max << " position - " << maxi + 1 << endl;
    cout << "min = " << min << " position - " << mini + 1 << endl;
 
    int buf = mas[mini];
    mas[mini] = mas[maxi];
    mas[maxi] = buf;
 
    for(int i = 0; i < n; i++)
    {
        cout << mas[i] << " ";
    }
    cout << endl;
    delete [] mas;
    system("pause >> null");
    return 0;
}
Добавлено через 2 минуты
Цитата Сообщение от Maksimyshka Посмотреть сообщение
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
28
29
30
31
#include "iostream"
#include "ctime"
 
using namespace std;
 
int main()
{
    setlocale(0,"");
    srand(time(0));
    const int n = 10;
    int *mas = new int [n];
    int count = 0;
    for(int i = 0; i < n; i++)
    {
        cout << (mas[i] = rand() % 10) << " ";
    }
 
    
    for(int i = 1; i < n; i+= 2)
    {
        if(mas[i] % 2 == 0)
        {
            count++;
        }
    }
    cout << endl << count << endl;
 
    delete [] mas;
    system("pause >> null");
    return 0;
}
0
3 / 3 / 5
Регистрация: 10.11.2008
Сообщений: 43
02.09.2012, 22:50 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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
#include "stdafx.h"
#include "iostream"
#include "conio.h"
#include "ctime"
using namespace std;
//-------------------------------------------------
void print(int *arr, int n)
{
    for(int i = 0; i < n; i++)
        cout << arr[i] << " ";
}
//-------------------------------------------------
void srand(int *arr, int n)
{
    for(int i = 0; i < n; i++)
        *(arr + i) = rand() % 2 + 7;
}
//-------------------------------------------------
int maxindex(int *arr, int n)
{
    int max = arr[0];
    int max_index = 0;
    for(int i = 1; i < n; i++)
    {
        if(arr[i] > max)
        {
            max = arr[i];
            max_index = i;
        }
    }
    return max_index;
}
//-------------------------------------------------
int minindex(int *arr, int n)
{
    int min = arr[0];
    int min_index = 0;
    for(int i = 1; i < n; i++)
    {
        if(arr[i] < min)
        {
            min = arr[i];
            min_index = i;
        }
    }
    return min_index;
}
//-------------------------------------------------
void swap_(int *arr, int n)
{
    int tmp = minindex(arr, n);
    int temp = maxindex(arr, n);
    int x = 0;
    x = arr[tmp];
    arr[tmp] = arr[temp];
    arr[temp] = x;
}
//-------------------------------------------------
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(0, "Russian");
    srand(time(NULL));
    int n = 0, *arr = new int[n];
    cout << "Введите размер массива: ";
    cin >> n;
    srand(arr,n);
    cout << "\n\nМассив имеет вид: ";
    print(arr,n);
    swap_(arr,n);
    cout << "\n\n\nПосле корректировки массив имеет вид: ";
    print(arr,n);
    _getch();
    return 0;
}
 
 
 
 
 
 
 
[size="1"][color="grey"][I]Добавлено через 12 минут[/I][/color][/size]
#include "stdafx.h"
#include "iostream"
#include "conio.h"
#include "ctime"
using namespace std;
//-------------------------------------------------
void print(int *arr, int n)
{
    for(int i = 0; i < n; i++)
        cout << arr[i] << " ";
}
//-------------------------------------------------
void srand(int *arr, int n)
{
    for(int i = 0; i < n; i++)
        *(arr + i) = rand() % 2 + 7;
}
//-------------------------------------------------
int maxindex(int *arr, int n)
{
    int max = arr[0];
    int max_index = 0;
    for(int i = 1; i < n; i++)
    {
        if(arr[i] > max)
        {
            max = arr[i];
            max_index = i;
        }
    }
    return max_index;
}
//-------------------------------------------------
int minindex(int *arr, int n)
{
    int min = arr[0];
    int min_index = 0;
    for(int i = 1; i < n; i++)
    {
        if(arr[i] < min)
        {
            min = arr[i];
            min_index = i;
        }
    }
    return min_index;
}
//-------------------------------------------------
void swap_(int *arr, int n)
{
    int tmp = minindex(arr, n);
    int temp = maxindex(arr, n);
    int x = 0;
    x = arr[tmp];
    arr[tmp] = arr[temp];
    arr[temp] = x;
}
//-------------------------------------------------
void Count_chet(int *arr, int n)
{
    int count = 0;
    for(int i = 0; i < n; i++)
    {
        if(i % 2)
        {
            if(arr[i] % 2 == 0)
                count++;
        }
    }
    cout << "Количество четных элементов стоящих на нечетных местах: " << count << "\n\n";
}
//-------------------------------------------------
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(0, "Russian");
    srand(time(NULL));
    int n = 0, *arr = new int[n];
    cout << "Введите размер массива: ";
    cin >> n;
    srand(arr,n);
    cout << "\n\nМассив имеет вид: ";
    print(arr,n);
    swap_(arr,n);
    cout << "\n\n\nПосле корректировки массив имеет вид: ";
    print(arr,n);
    cout << "\n\n\n";
    Count_chet(arr,n);
    delete arr;
    _getch();
    return 0;
}
0
iOS/Android Developer
Эксперт С++
5131 / 1568 / 952
Регистрация: 23.01.2011
Сообщений: 3,192
02.09.2012, 23:04 8
Лучший ответ Сообщение было отмечено как решение

Решение

Цитата Сообщение от Maksimyshka Посмотреть сообщение
1.в массиве поменять max и min элемент и вывести массив до перемещения и после
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
#include <iostream>
#include <ctime>
 
int main()
{
    srand(time(0));
    const int Size = 15;
    int Array[Size], Minimal = 0, Maximal = 0, Temp;
    
    std::cout << "Array: " << std::endl;
    for(int i = 0; i < Size; i++)
    {
            Array[i] = rand() % 100;
            if(Array[i] < Array[Minimal])
                        Minimal = i;
            if(Array[i] > Array[Maximal])
                        Maximal = i;
            std::cout << Array[i] << " ";
    }
    std::cout << std::endl;
    
    Temp = Array[Minimal];
    Array[Minimal] = Array[Maximal];
    Array[Maximal] = Temp;
    
    std::cout << "New array: " << std::endl;
    for(int i = 0; i < Size; i++)
            std::cout << Array[i] << " ";
    std::cout << std::endl;
    
    system("pause");
    return 0;
}
http://liveworkspace.org/code/... 99fc53780f

Добавлено через 3 минуты
Цитата Сообщение от Maksimyshka Посмотреть сообщение
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
#include <iostream>
#include <ctime>
 
int main()
{
    srand(time(0));
    const int Size = 15;
    int Array[Size], Count = 0;
    
    std::cout << "Array: " << std::endl;
    for(int i = 0; i < Size; i++)
    {
            Array[i] = rand() % 100;
            if(Array[i] % 2 == 0 && i % 2 != 0)
                        Count++;
            std::cout << Array[i] << " ";
    }
    std::cout << std::endl;
    std::cout << "Count: " << Count << std::endl;
            
    system("pause");
    return 0;
}
http://liveworkspace.org/code/... 130b079343
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.09.2012, 23:04

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Нужен совет для решения задачки*(одномерные массивы)
Дана функция y=5sin(2x+1)+cos(x+1) на интервале от x1 до x2 с шагом h. Сформировать другой...

Маленькие задачки на списки
Задание как всегда приходит неожиданно:) 1) Подсчитать уровень вложенности списка такого вида (...

две маленькие задачки
1) Нужно написать программу, которая в цикле введет 7 значений и посчитает количество чисел не...

Две маленькие задачки с использованием форм
Всем привет! Возникла проблема с задачками. Первую я решил, но как сделать замену значений в...

Маленькие задачки Уничтожение цикла, Присваивание, Подсчет, Алгоритм Евклида, Рекурсия
1. Уничтожение цикла while a &gt;= b do a := a - b ; a и b целые, и перед выполнением цикла...

Задачки на массивы
Здравствуйте уважаемые программисты кто знает как решить эти 2 скромненькие задачи, пожскажите...


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

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

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