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

Сжать массив, удалив из него элементы, модуль которых находится в заданном интервале - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.73
melk1y
0 / 0 / 0
Регистрация: 21.10.2009
Сообщений: 27
20.10.2010, 16:04     Сжать массив, удалив из него элементы, модуль которых находится в заданном интервале #1
в одномерном массиве состоящем из n вещественных элементов вычислить:
1)максимальный элемент массива;
2)сумму элементов массива, расположенных до последнего положительного
элемента.
Сжать массив, удалив из него все элементы, модуль которых находится в интервале [a,b]
Освободившиеся в конце массива элементы заполнить нулями.

Добавлено через 55 секунд
ребят, подскажите пожалуста. как решить задачу..я профан в этом деле(((
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.10.2010, 16:04     Сжать массив, удалив из него элементы, модуль которых находится в заданном интервале
Посмотрите здесь:

C++ Сжать массив, удалив из него все элементы, модуль которых находится в интервале a,b
Сжать массив, удалив из него все элементы, модуль которых находится в интервале [a,b] C++
C++ Сжать массив, удалив из него все элементы, модуль которых находится в интервале [a,b].
C++ Сжать массив, удалив из него все элементы, модуль которых находится в интервале [a, b]. освободившиеся в конце массива элементы заполнить нулями.
Сжать массив, удалив из него все элементы, модуль которых находится в интервале [a,b]. Освободившиеся в конце массива элементы заполнить нулями C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MILAN
 Аватар для MILAN
883 / 777 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
20.10.2010, 16:55     Сжать массив, удалив из него элементы, модуль которых находится в заданном интервале #2
1)

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
#include <iostream>
#include <ctime> 
 
using std::cout;
using std::cin;
using std::endl;
 
int main()
{    
    setlocale(LC_ALL,"Russian");
    int *arr;
    int n,max,k=0;
    cout<<"Введите количество елементов массива: ";
    cin>>n;
    arr = new int[n];
    cout<<endl;
    for(int i=0; i<n; i++)
     {
         arr[i]= rand()%4;
          if(k==0)
          {
            max = arr[0];
            k++;
          }
         if(arr[i]>max)
         {
           max = arr[i];
         }
         cout<<arr[i]<<" ";
     }
     cout<<endl;
     cout<<max;
     system("pause");
     delete [] arr;
     return 0;
}
melk1y
0 / 0 / 0
Регистрация: 21.10.2009
Сообщений: 27
20.10.2010, 17:06  [ТС]     Сжать массив, удалив из него элементы, модуль которых находится в заданном интервале #3
MILAN...спосибо большое)))
MILAN
 Аватар для MILAN
883 / 777 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
20.10.2010, 17:14     Сжать массив, удалив из него элементы, модуль которых находится в заданном интервале #4
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <iostream>
#include <ctime> 
 
using std::cout;
using std::cin;
using std::endl;
 
int main()
{    
    setlocale(LC_ALL,"Russian");
    int *arr;
    int n,a,b,max,k=0,sum=0;
    cout<<"Введите количество елементов массива: ";
    cin>>n;
    arr = new int[n];
    for(int i=0; i<n; i++)
     {
         arr[i]= rand()%9-2;
          if(k==0)
          {
            max = arr[0];
            k++;
          }
         if(arr[i]>max)
         {
           max = arr[i];
         }
         cout<<arr[i]<<" ";
     }
     for(int i=n; i>0; i--)
     {
         if(arr[i]>0)
         {
             for(int j=0; j<i; j++)
             {
                 sum+=arr[j];
             }
           break;
         }
     }
     cout<<endl;
     cout<<"Max is "<<max;
     cout<<endl;
     cout<<"Sum is "<<sum;
     system("pause");
     delete [] arr;
     return 0;
}
melk1y
0 / 0 / 0
Регистрация: 21.10.2009
Сообщений: 27
24.12.2010, 16:29  [ТС]     Сжать массив, удалив из него элементы, модуль которых находится в заданном интервале #5
блин, решил попробовать на с++ 2008, не запускается(((
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
24.12.2010, 16:43     Сжать массив, удалив из него элементы, модуль которых находится в заданном интервале #6
Добавлено через 18 секунд
Цитата Сообщение от melk1y Посмотреть сообщение
Сжать массив, удалив из него все элементы, модуль которых находится в интервале [a,b]
Освободившиеся в конце массива элементы заполнить нулями.
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
#include <iostream>
#include <ctime>
#include <cstdlib>
 
bool WithineRange(int a,int b, int x)
{
     return x > a && x < b;
} /* функция определяет находится ли число Array[i],
    передаваемое ей в качестве аргумента в диапазоне между a и b */
 
int main()
{
        int a,b,N;
std::cout << "a = ";
std::cin >> a;
std::cout << "b = ";
std::cin >> b;
std::cout << "N = ";
std::cin >> N;
srand(time(0));
int * Array = new int[N];
for(int i = 0;i < N;++i)
{
    Array[i] = rand()%20 + 1;
    std::cout << Array[i] << " ";
} /* заполняем массив случайными     числами от 1 до 19 */
 
std::cout << "\n\n";
 
for(int i = 0;i < N;++i)
{
        if(WithineRange(a,b,Array[i]))
        {
            Array[i] = 0;
        } /* вызываем функцию WithineRange() для каждого элемента массива, передаем ей аргументы a,b и Array[i]. Если Array[i] больше a и меньше чем b, то
Array[i] = 0 */
}
 
int cnt = 0;
for(int i = 0;i < N;++i)
    if(!Array[i])
        ++cnt;
 
std::cout << "\n\n";
for(int i = N;i > 0;i--) // перегоняем все нули в конец массива
{
        if(Array[i] != 0 && Array[i-1] == 0)
        {
            Array[i-1] = Array[i];
            Array[i] = 0;
            i = N;
            continue;
        }
}
 
for(int i = 0;i < N - cnt;++i)
std::cout << Array[i] << " ";
 
delete[] Array;
}
melk1y
0 / 0 / 0
Регистрация: 21.10.2009
Сообщений: 27
24.12.2010, 17:52  [ТС]     Сжать массив, удалив из него элементы, модуль которых находится в заданном интервале #7
Цитата Сообщение от asics Посмотреть сообщение
Добавлено через 18 секунд

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
#include <iostream>
#include <ctime>
#include <cstdlib>
 
bool WithineRange(int a,int b, int x)
{
     return x > a && x < b;
} /* функция определяет находится ли число Array[i],
    передаваемое ей в качестве аргумента в диапазоне между a и b */
 
int main()
{
        int a,b,N;
std::cout << "a = ";
std::cin >> a;
std::cout << "b = ";
std::cin >> b;
std::cout << "N = ";
std::cin >> N;
srand(time(0));
int * Array = new int[N];
for(int i = 0;i < N;++i)
{
    Array[i] = rand()%20 + 1;
    std::cout << Array[i] << " ";
} /* заполняем массив случайными     числами от 1 до 19 */
 
std::cout << "\n\n";
 
for(int i = 0;i < N;++i)
{
        if(WithineRange(a,b,Array[i]))
        {
            Array[i] = 0;
        } /* вызываем функцию WithineRange() для каждого элемента массива, передаем ей аргументы a,b и Array[i]. Если Array[i] больше a и меньше чем b, то
Array[i] = 0 */
}
 
int cnt = 0;
for(int i = 0;i < N;++i)
    if(!Array[i])
        ++cnt;
 
std::cout << "\n\n";
for(int i = N;i > 0;i--) // перегоняем все нули в конец массива
{
        if(Array[i] != 0 && Array[i-1] == 0)
        {
            Array[i-1] = Array[i];
            Array[i] = 0;
            i = N;
            continue;
        }
}
 
for(int i = 0;i < N - cnt;++i)
std::cout << Array[i] << " ";
 
delete[] Array;
}


в с++ 2008 работать отказывается(
melk1y
0 / 0 / 0
Регистрация: 21.10.2009
Сообщений: 27
26.12.2010, 00:38  [ТС]     Сжать массив, удалив из него элементы, модуль которых находится в заданном интервале #8
ребят!!! помогите задачку правильно составить, чтобы работала, в понедельни понадобится очень((((
MILAN
 Аватар для MILAN
883 / 777 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
26.12.2010, 00:46     Сжать массив, удалив из него элементы, модуль которых находится в заданном интервале #9
melk1y, ошыбки какие?
melk1y
0 / 0 / 0
Регистрация: 21.10.2009
Сообщений: 27
26.12.2010, 23:12  [ТС]     Сжать массив, удалив из него элементы, модуль которых находится в заданном интервале #10
Цитата Сообщение от asics Посмотреть сообщение
Добавлено через 18 секунд

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
#include <iostream>
#include <ctime>
#include <cstdlib>
 
bool WithineRange(int a,int b, int x)
{
     return x > a && x < b;
} /* функция определяет находится ли число Array[i],
    передаваемое ей в качестве аргумента в диапазоне между a и b */
 
int main()
{
        int a,b,N;
std::cout << "a = ";
std::cin >> a;
std::cout << "b = ";
std::cin >> b;
std::cout << "N = ";
std::cin >> N;
srand(time(0));
int * Array = new int[N];
for(int i = 0;i < N;++i)
{
    Array[i] = rand()%20 + 1;
    std::cout << Array[i] << " ";
} /* заполняем массив случайными     числами от 1 до 19 */
 
std::cout << "\n\n";
 
for(int i = 0;i < N;++i)
{
        if(WithineRange(a,b,Array[i]))
        {
            Array[i] = 0;
        } /* вызываем функцию WithineRange() для каждого элемента массива, передаем ей аргументы a,b и Array[i]. Если Array[i] больше a и меньше чем b, то
Array[i] = 0 */
}
 
int cnt = 0;
for(int i = 0;i < N;++i)
    if(!Array[i])
        ++cnt;
 
std::cout << "\n\n";
for(int i = N;i > 0;i--) // перегоняем все нули в конец массива
{
        if(Array[i] != 0 && Array[i-1] == 0)
        {
            Array[i-1] = Array[i];
            Array[i] = 0;
            i = N;
            continue;
        }
}
 
for(int i = 0;i < N - cnt;++i)
std::cout << Array[i] << " ";
 
delete[] Array;
}
ощибки следуущие...
1>------ Построение начато: проект: 111, Конфигурация: Debug Win32 ------
1>Компиляция...
1>111.cpp
1>c:\users\melk1y\documents\visual studio 2008\projects\111\111\111.cpp(3) : warning C4627: #include <iostream>: пропущен при поиске использования предкомпилированного заголовка
1> Добавление директивы в "stdafx.h" или перестройка предкомпилированного заголовка
1>c:\users\melk1y\documents\visual studio 2008\projects\111\111\111.cpp(4) : warning C4627: #include <ctime>: пропущен при поиске использования предкомпилированного заголовка
1> Добавление директивы в "stdafx.h" или перестройка предкомпилированного заголовка
1>c:\users\melk1y\documents\visual studio 2008\projects\111\111\111.cpp(5) : warning C4627: #include <cstdlib>: пропущен при поиске использования предкомпилированного заголовка
1> Добавление директивы в "stdafx.h" или перестройка предкомпилированного заголовка
1>c:\users\melk1y\documents\visual studio 2008\projects\111\111\111.cpp(17) : error C2653: std: не является именем класса или пространства имен
1>c:\users\melk1y\documents\visual studio 2008\projects\111\111\111.cpp(17) : error C2065: cout: необъявленный идентификатор
1>c:\users\melk1y\documents\visual studio 2008\projects\111\111\111.cpp(18) : error C2653: std: не является именем класса или пространства имен
1>c:\users\melk1y\documents\visual studio 2008\projects\111\111\111.cpp(18) : error C2065: cin: необъявленный идентификатор
1>c:\users\melk1y\documents\visual studio 2008\projects\111\111\111.cpp(19) : error C2653: std: не является именем класса или пространства имен
1>c:\users\melk1y\documents\visual studio 2008\projects\111\111\111.cpp(19) : error C2065: cout: необъявленный идентификатор
1>c:\users\melk1y\documents\visual studio 2008\projects\111\111\111.cpp(20) : error C2653: std: не является именем класса или пространства имен
1>c:\users\melk1y\documents\visual studio 2008\projects\111\111\111.cpp(20) : error C2065: cin: необъявленный идентификатор
1>c:\users\melk1y\documents\visual studio 2008\projects\111\111\111.cpp(21) : error C2653: std: не является именем класса или пространства имен
1>c:\users\melk1y\documents\visual studio 2008\projects\111\111\111.cpp(21) : error C2065: cout: необъявленный идентификатор
1>c:\users\melk1y\documents\visual studio 2008\projects\111\111\111.cpp(22) : error C2653: std: не является именем класса или пространства имен
1>c:\users\melk1y\documents\visual studio 2008\projects\111\111\111.cpp(22) : error C2065: cin: необъявленный идентификатор
1>c:\users\melk1y\documents\visual studio 2008\projects\111\111\111.cpp(23) : error C3861: srand: идентификатор не найден
1>c:\users\melk1y\documents\visual studio 2008\projects\111\111\111.cpp(23) : error C3861: time: идентификатор не найден
1>c:\users\melk1y\documents\visual studio 2008\projects\111\111\111.cpp(27) : error C3861: rand: идентификатор не найден
1>c:\users\melk1y\documents\visual studio 2008\projects\111\111\111.cpp(28) : error C2653: std: не является именем класса или пространства имен
1>c:\users\melk1y\documents\visual studio 2008\projects\111\111\111.cpp(28) : error C2065: cout: необъявленный идентификатор
1>c:\users\melk1y\documents\visual studio 2008\projects\111\111\111.cpp(31) : error C2653: std: не является именем класса или пространства имен
1>c:\users\melk1y\documents\visual studio 2008\projects\111\111\111.cpp(31) : error C2065: cout: необъявленный идентификатор
1>c:\users\melk1y\documents\visual studio 2008\projects\111\111\111.cpp(47) : error C2653: std: не является именем класса или пространства имен
1>c:\users\melk1y\documents\visual studio 2008\projects\111\111\111.cpp(47) : error C2065: cout: необъявленный идентификатор
1>c:\users\melk1y\documents\visual studio 2008\projects\111\111\111.cpp(60) : error C2653: std: не является именем класса или пространства имен
1>c:\users\melk1y\documents\visual studio 2008\projects\111\111\111.cpp(60) : error C2065: cout: необъявленный идентификатор
1>Журнал построения был сохранен в "file://c:\Users\melk1y\Documents\Visual Studio 2008\Projects\111\111\Debug\BuildLog.htm"
1>111 - ошибок 23, предупреждений 3
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
...
блин..завтра зачет(
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
26.12.2010, 23:26     Сжать массив, удалив из него элементы, модуль которых находится в заданном интервале #11
В самом начале кода добавьте строчку:
C++
1
#include "stdafx.h"
Beleaf
9 / 9 / 3
Регистрация: 14.04.2010
Сообщений: 99
26.12.2010, 23:49     Сжать массив, удалив из него элементы, модуль которых находится в заданном интервале #12
попробуй убрать все std::, а после заголовочных файлов напиши using namespace std;
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.12.2010, 19:40     Сжать массив, удалив из него элементы, модуль которых находится в заданном интервале
Еще ссылки по теме:

C++ Сжать массив, удалил из него все элементы, модуль которых находится в заданном интервале
Сжать массив, удалив из него все элементы, модуль которых находится в интервале [а, b] C++
C++ Сжать массив, удалив из него все элементы, модуль которых находится в интервале [a,b]

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

Или воспользуйтесь поиском по форуму:
melk1y
0 / 0 / 0
Регистрация: 21.10.2009
Сообщений: 27
27.12.2010, 19:40  [ТС]     Сжать массив, удалив из него элементы, модуль которых находится в заданном интервале #13
вот после добавления #include "stdafx.h" выходят ошибки + using namespace std; тоже ставил, не работает(

Добавлено через 6 минут
#include <iostream>
#include <ctime>
#include <cstdlib>
#include <stdafx.h>
using namespace std;

bool WithineRange(int a,int b, int x)
{
return x > a && x < b;
} /* функция определяет находится ли число Array[i],
передаваемое ей в качестве аргумента в диапазоне между a и b */

int main()
{
int a,b,N;
cout << "a = ";
cin >> a;
cout << "b = ";
cin >> b;
cout << "N = ";
cin >> N;
srand(time(0));
int * Array = new int[N];
for(int i = 0;i < N;++i)
{
Array[i] = rand()%20 + 1;
cout << Array[i] << " ";
} /* заполняем массив случайными числами от 1 до 19 */

cout << "\n\n";

for(int i = 0;i < N;++i)
{
if(WithineRange(a,b,Array[i]))
{
Array[i] = 0;
} /* вызываем функцию WithineRange() для каждого элемента массива, передаем ей аргументы a,b и Array[i]. Если Array[i] больше a и меньше чем b, то
Array[i] = 0 */
}

int cnt = 0;
for(int i = 0;i < N;++i)
if(!Array[i])
++cnt;

cout << "\n\n";
for(int i = N;i > 0;i--) // перегоняем все нули в конец массива
{
if(Array[i] != 0 && Array[i-1] == 0)
{
Array[i-1] = Array[i];
Array[i] = 0;
i = N;
continue;
}
}

for(int i = 0;i < N - cnt;++i)
cout << Array[i] << " ";

delete[] Array;
}



1>------ Построение начато: проект: 111, Конфигурация: Debug Win32 ------
1>Компиляция...
1>111.cpp
1>c:\users\melk1y\documents\visual studio 2008\projects\111\111\111.cpp(3) : warning C4627: #include <iostream>: пропущен при поиске использования предкомпилированного заголовка
1> Добавление директивы в "stdafx.h" или перестройка предкомпилированного заголовка
1>c:\users\melk1y\documents\visual studio 2008\projects\111\111\111.cpp(4) : warning C4627: #include <ctime>: пропущен при поиске использования предкомпилированного заголовка
1> Добавление директивы в "stdafx.h" или перестройка предкомпилированного заголовка
1>c:\users\melk1y\documents\visual studio 2008\projects\111\111\111.cpp(5) : warning C4627: #include <cstdlib>: пропущен при поиске использования предкомпилированного заголовка
1> Добавление директивы в "stdafx.h" или перестройка предкомпилированного заголовка
1>c:\users\melk1y\documents\visual studio 2008\projects\111\111\111.cpp(7) : error C2871: std: пространство имен с таким именем не существует
1>c:\users\melk1y\documents\visual studio 2008\projects\111\111\111.cpp(18) : error C2065: cout: необъявленный идентификатор
1>c:\users\melk1y\documents\visual studio 2008\projects\111\111\111.cpp(19) : error C2065: cin: необъявленный идентификатор
1>c:\users\melk1y\documents\visual studio 2008\projects\111\111\111.cpp(20) : error C2065: cout: необъявленный идентификатор
1>c:\users\melk1y\documents\visual studio 2008\projects\111\111\111.cpp(21) : error C2065: cin: необъявленный идентификатор
1>c:\users\melk1y\documents\visual studio 2008\projects\111\111\111.cpp(22) : error C2065: cout: необъявленный идентификатор
1>c:\users\melk1y\documents\visual studio 2008\projects\111\111\111.cpp(23) : error C2065: cin: необъявленный идентификатор
1>c:\users\melk1y\documents\visual studio 2008\projects\111\111\111.cpp(24) : error C3861: srand: идентификатор не найден
1>c:\users\melk1y\documents\visual studio 2008\projects\111\111\111.cpp(24) : error C3861: time: идентификатор не найден
1>c:\users\melk1y\documents\visual studio 2008\projects\111\111\111.cpp(28) : error C3861: rand: идентификатор не найден
1>c:\users\melk1y\documents\visual studio 2008\projects\111\111\111.cpp(29) : error C2065: cout: необъявленный идентификатор
1>c:\users\melk1y\documents\visual studio 2008\projects\111\111\111.cpp(32) : error C2065: cout: необъявленный идентификатор
1>c:\users\melk1y\documents\visual studio 2008\projects\111\111\111.cpp(48) : error C2065: cout: необъявленный идентификатор
1>c:\users\melk1y\documents\visual studio 2008\projects\111\111\111.cpp(61) : error C2065: cout: необъявленный идентификатор
1>Журнал построения был сохранен в "file://c:\Users\melk1y\Documents\Visual Studio 2008\Projects\111\111\Debug\BuildLog.htm"
1>111 - ошибок 14, предупреждений 3
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========


вот код, вот ошибки....что там надо подправить, чтобы оно заработало???
повторяюсь, программа с++ 2008(((

Добавлено через 5 часов 4 минуты
все, заработало, пришлось библиотеки добавить..................) всем большое спасибо)
Yandex
Объявления
27.12.2010, 19:40     Сжать массив, удалив из него элементы, модуль которых находится в заданном интервале
Ответ Создать тему
Опции темы

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