Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 22, средняя оценка - 4.77
smolin91
1 / 1 / 0
Регистрация: 12.12.2010
Сообщений: 21
#1

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

12.12.2010, 14:13. Просмотров 3836. Ответов 23
Метки нет (Все метки)

| Исходные данные - n вещественных величин.
|| При написании программы используйте динамические массивы.

1. Найти максимальный элеметн массива.
2. Найти сумму элементов массива, расположенных до последнего положительного элемента.
3. Сжать массив, удалив из него все элементы, модуль которых находится в интервале [a,b]. Освободившиеся в конце массива элементы заполнить нулями.

Добавлено через 1 минуту
Буду очень признателен за вашу помощь. По возможности вам отплачу тем-же
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.12.2010, 14:13
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сжать массив, удалив из него все элементы, модуль которых находится в интервале [a,b]. (C++):

Сжать массив, удалив из него все элементы, модуль которых находится в интервале a,b - C++
В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1. максимальный элемент массива; 2. сумму элементов массива,...

Сжать массив, удалив из него все элементы, модуль которых находится в интервале [a,b] - C++
Всем здравствуйте, нужна ваша помощь , написать программу на DEV C++ Очень буду благодарен ! В одномерном массиве, состоящем из n...

Сжать массив, удалив из него все элементы, модуль которых находится в интервале [a,b] - C++
В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1.) максимальный элемент массива; 2.) сумму элементов массива,...

Сжать массив, удалив из него все элементы, модуль которых находится в интервале [а, b] - C++
Сжать массив, удалив из него все элементы, модуль которых находится в интервале . Освободившиеся в конце массива элементы заполнить...

Сжать массив, удалив из него все элементы, модуль которых находится в интервале [а, b] - C++
Указатели с++: Задача: В одномерном массиве , состоящем из n действительных элементов , вычислить : • максимальный элемент массива ; ...

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

23
MILAN
886 / 780 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
12.12.2010, 14:16 #2
Используйте поиск, такие задачи уже не раз на форуме рашались!!!!!
1
smolin91
1 / 1 / 0
Регистрация: 12.12.2010
Сообщений: 21
12.12.2010, 15:08  [ТС] #3
я не смог сделать так как мне надо =( из того что есть!!!
можешь сюда скинуть то что ты счетаешь нужным и правильным ?!?!?

Добавлено через 49 минут
Помогите....
срочно нужно сделать и сдать...горю.!!!!
0
MILAN
886 / 780 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
12.12.2010, 15:18 #4
Ну, на пример

Зачада на одномерный массив
0
fasked
Эксперт С++
4963 / 2543 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
12.12.2010, 15:41 #5
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
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
        int i = 0;
        int j = 0;
        int cnt = 0;
        int size = 10;
 
        float max = 0;
        float sum = 0;
        float llim = -1.5;
        float rlim = +1.5;
        float *pdata = NULL;
 
        if((pdata = (float *)malloc(sizeof(float) * size)) == NULL) {
                fprintf(stderr, "can't allocated memory\n");
                exit(1);
        }
 
        for(i = 0; i < size; ++i) {
                pdata[i] = (float)rand() / rand() * (rand() % 2 ? -1 : 1);
        }
 
        for(i = 0; i < size; ++i) {
                printf("%f ", pdata[i]);
        }
        printf("\n");
 
        max = pdata[0];
        for(i = 0; i < size; ++i) {
                if(max < pdata[i])
                        max = pdata[i];
        }
        printf("max: %f\n", max);
 
        sum = 0;
        for(i = 0; i < size && pdata[i] <= 0; ++i) {
                sum += pdata[i];
        }
        printf("sum: %f\n", sum);
 
        for(i = 0; i < size - cnt;  ++i) {
                if(pdata[i] >= llim && pdata[i] <= rlim) {
                        ++cnt;
                        for(j = i; j < size - cnt - 1; ++j) {
                                pdata[j] = pdata[j + 1];
                        }
 
                        for( ; j < size; ++j)
                                pdata[j] = 0.0;
 
                        --i;
                }
        }
 
        for(i = 0; i < size; ++i) {
                printf("%f ", pdata[i]);
        }
        printf("\n");
 
        free(pdata);
        return 0;
}
0
smolin91
1 / 1 / 0
Регистрация: 12.12.2010
Сообщений: 21
12.12.2010, 16:01  [ТС] #6
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 <conio.h>
 
using namespace std;
 
int main()
{
    int n,i,a,b,j=0;
    cout<<"  a="; cin>>a;
    cout<<"  b="; cin>>b;
    cout<<"  n="; cin>>n;
    int *x=new int[n];
    cout<<"  Array: ";
    for(i=0;i<n;i++) { x[i]=rand()%10; cout<<x[i]<<" "; }
    cout<<endl;
    cout<<"\n  New array: ";
    for(i=0;i<n;i++) if(x[i]<a || x[i]>b) { x[j]=x[i]; j++; }
    for(i=j;i<n;i++) x[i]=0;
    for(i=0;i<n;i++) cout<<x[i]<<" ";
    delete []x;
    getch();
    return 0;
}
Добавлено через 2 минуты
я взял этот код. но мне нужно ещё после замены но нули свинуть всё влево, а нули что бы были справа !!!
как это сделать?!?!?
1
MILAN
886 / 780 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
12.12.2010, 16:11 #7
smolin91, так там они и сдвигаются!!!!
0
smolin91
1 / 1 / 0
Регистрация: 12.12.2010
Сообщений: 21
12.12.2010, 17:43  [ТС] #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
35
36
37
38
39
40
#include <iostream>
#include <conio.h>
//#include <time.h>  
using namespace std; 
int main()
{
//srand( time(NULL));
int n, a, b, *Arr, sum=0 ,pos=0, j=0;
setlocale (LC_ALL, "Russian");
        int max=-99,i;
  cout<< "\n Введите размер массива =\n ";
        cin >> n;
 
        cout<<"  Ввидите интервал чисел, модуль которых должен быть удален из массива.\n Освободившиеся в конце массива элементы заполняться нулями.\n a= \n    "; cin>>a;
    cout<<" b=\n    "; cin>>b;
        Arr = new int[n];
  cout<< " Массив:\n    " << " ";
        for(int i=0; i<n; i++)
{   Arr[i]=rand()%21-10;
        cout<< Arr[i] << " ";
        if (Arr[i]<0);  }
        for (int i=0; i<n; i++)
      if (Arr[i]>max)
      max=Arr[i];
  cout<< "\n Максимальный элемент массива =\n   " << max <<endl;
  for(i=n-1; i>=0; i--)
{   if (pos>=1) sum+=Arr[i];
  if (pos>=0)pos++;}
  cout<< " Сумма элементов массива,расположенных до последнего положительного элемента =\n  " << sum <<endl;
 
 
    cout<<"  Array: ";
    for(i=0;i<n;i++) { Arr[i]=rand()%10; cout<<Arr[i]<<" "; }
    cout<<endl;
    cout<<"\n  New array: ";
    for(i=0;i<n;i++) if(Arr[i]<a || Arr[i]>b) { Arr[j]=Arr[i]; j++; }
    for(i=j;i<n;i++) Arr[i]=0;
    for(i=0;i<n;i++) cout<<Arr[i]<<" ";
return 0;
}
Добавлено через 43 секунды
kak sdelat 4to-bi bil tolko ODIN massiv s kotorim vse proisxodili bi ?!?!?!

Добавлено через 12 минут
я уже сделал ОДИН массив! Но теперь у меня массив с отрецательными числами, а ПО ЗАДАНИЮ модуль чисел заданных пользователем должны быть превращены в ноль и все нули должны уйти в конец массива!
так как сделать МОДУЛЬ ?

 Комментарий модератора 
Используйте теги форматирования кода.
0
MILAN
886 / 780 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
12.12.2010, 17:47 #9
модуль числа x - abs(x);

библиотека

C
1
#include <math.h>
или

C++
1
#include <cmath>
0
smolin91
1 / 1 / 0
Регистрация: 12.12.2010
Сообщений: 21
12.12.2010, 17:57  [ТС] #10
это понятно, а в коде нужно же ещё что-то добавить!
куда и что?
0
MILAN
886 / 780 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
12.12.2010, 18:09 #11
Блин, ступил, вот так правильно

C++
1
if(abs(Arr[i])<a && abs(Arr[i])>b) { Arr[j]=Arr[i]; j++; }
1
smolin91
1 / 1 / 0
Регистрация: 12.12.2010
Сообщений: 21
12.12.2010, 18:36  [ТС] #12
ДА! спасибо!
получилось всё от и до! =)))
0
15045
0 / 0 / 0
Регистрация: 05.12.2010
Сообщений: 14
12.12.2010, 20:25 #13
Задали написать программу на C++ :Ввести массив из 13 целых чисел в StringGrid.Определить, элементы расположены по возрастанию или нет. Помогите написать программу, пожалуйста
0
smolin91
1 / 1 / 0
Регистрация: 12.12.2010
Сообщений: 21
12.12.2010, 20:39  [ТС] #14
Люди а кто-то может сделать правильный алгоритм к моему заданию ?!?!?
0
smolin91
1 / 1 / 0
Регистрация: 12.12.2010
Сообщений: 21
13.12.2010, 15:06  [ТС] #15
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
#include <iostream>
#include <conio.h>
#include <time.h>  
using namespace std; 
int main()
{
srand( time(NULL));
int n, a, b, *Arr, sum=0 ,pos=0, j=0;
setlocale (LC_ALL, "Russian");
int max=-99,i;
 
    cout<< "\n Введите размер массива =\n   ";
        cin >> n;
    cout<<"  Ввидите интервал чисел \n a = \n   ";
        cin>>a;
    cout<< " b =\n  ";
        cin>> b;
    
    Arr = new int[n];
    cout<< " Массив:\n  " << " ";
    for(int i=0; i<n; i++)
    {   Arr[i]=rand()%21-10;
    cout<< Arr[i] << " ";
 
    if (Arr[i]<0);  };
    for (int i=0; i<n; i++)
        if (Arr[i]>max)
            max=Arr[i];
 
    cout<< "\n Максимальный элемент массива =\n " << max <<endl;
    for(i=n-1; i>=0; i--)
    {   if (pos>=1);
    if (pos>=0)pos++;   }
 
    cout<< " Сумма элементов массива,расположенных до последнего положительного элемента =\n    " << sum;
    cout<<"\n Новый массив. в котором отсудствует интервал Вами заданный : \n   ";
    for(i=0;i<n;i++)
        if(abs(Arr[i])<a || abs(Arr[i])>b)
        {   Arr[j]=Arr[i]; j++; }
        for(i=j;i<n;i++) Arr[i]=0;
        for(i=0;i<n;i++)
            cout<< Arr[i] << " ";
    cout << "\n Конец! \n" <<endl;
        return 0;   }
Добавлено через 2 минуты
куда нужно втавить значение double или float или что-то друго, что бы массив был вещественных чисел, т.е. в нем должны быть не только целые числа, но и дробные.
что нужно поменять ?!?!?!?
0
13.12.2010, 15:06
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.12.2010, 15:06
Привет! Вот еще темы с ответами:

Сжать массив, удалив из него все элементы, модуль которых находится в заданном интервале - C++
Всем привет!) Прошу помочь в моей горе-задаче: Написать программу, работающую с одномерным вещественным массивом. Сжать массив,...

Сжать массив, удалив из него все элементы, модуль которых находится в интервале [a,b]. Освободившиеся в конце массива элементы заполнить нулями - C++
В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1. максимальный элемент массива; 2. сумму элементов массива,...

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

Сжать массив, удалив из него элементы, модуль которых находится в заданном интервале - C++
в одномерном массиве состоящем из n вещественных элементов вычислить: 1)максимальный элемент массива; 2)сумму элементов массива,...


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

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

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