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

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

Войти
Регистрация
Восстановить пароль
 
furrio
0 / 0 / 0
Регистрация: 23.11.2010
Сообщений: 24
#1

Одномерный массив - C++

24.02.2012, 00:48. Просмотров 672. Ответов 11
Метки нет (Все метки)

В одномерном массиве состоящем из n-вещественных элеметов, вычислить:
1. Кол-во отрицательных элементов,
2. Сумму модулей элементов, расположенных после минимального по модулю элемента.
Заменить все отрицательные элементы массива их квадратами и упорядочить элементы массива по возрастанию.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.02.2012, 00:48     Одномерный массив
Посмотрите здесь:

[C++] Одномерный массив - C++
Помогите доработать программу. Мне нужно удалить все отрицательные элементы массива стоящие перед минимальным.Еще нужносделать эту...

Одномерный массив. - C++
Составить программу, выполняющую с одномерным массивом следующие действия: В одномерном массиве, состоящем из п вещественных элементов,...

одномерный массив - C++
дан одномерный массив М из 28 элементов. Перенести первые к элементов в конец: М, М,..., М,М,..., М

Одномерный массив - C++
Кто нить помоги разобраться в этом адском ужасе, что совсем не чего не выходит... Создавть в динамической памяти одномерный массив...

Одномерный массив - C++
Помогите пож кому не сложно. В одномерном массиве, состоящем из N вещественных элементов, вычислить: 1)Произведение положительных...

одномерный массив - C++
C++ В одномерном массиве найти самую длинную серию одинаковых элементов. Заранее огромное спасибо.

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
samdavydov
60 / 21 / 2
Регистрация: 23.02.2012
Сообщений: 36
24.02.2012, 00:55     Одномерный массив #2
1. Количество отрицательных элементов - это количество элементов меньше нуля.
Если есть массив a размером n, то запустив индекс i от 0 до n-1, можно проверять a[i] < 0 и увеличивать счетчик, если это так.

Напиши хотя бы это.
Infinity3000
1058 / 577 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
24.02.2012, 00:55     Одномерный массив #3
Вылажите что у Вас на данном этапе получилось!
Serejke_qq
150 / 108 / 9
Регистрация: 06.07.2011
Сообщений: 224
Завершенные тесты: 2
24.02.2012, 01:40     Одномерный массив #4
Цитата Сообщение от furrio Посмотреть сообщение
вычислить
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include <iostream>
#include <ctime>
#include <cstdlib>
 
template<class Type>    void RandomInput(Type * array, int size);
template<class Type>    void ShowArray(Type * array, int size);
template<class Type>    int SuperFunct(Type * array, int size);
 
int main()
{
    int n = 10;
    int * arr = new int[n];
 
    RandomInput(arr,n);
    ShowArray(arr,n);
 
    std::cout << "\nКол-во элементов меньших нуля =  " << SuperFunct(arr,n);
 
    delete[] arr;
 
    return 0;
}
template<class Type>    int SuperFunct(Type * array, int size)
{
    int count = 0;
    for(int i=0; i<size; i++)
        if(array[i] < 0)    count++;
 
    return count;
}
 
template<class Type>    void RandomInput(Type * array, int size)
{
    srand(time(NULL));
 
    int _n = rand()%200;
 
    for(int i=0; i<size; i++)
        array[i] = rand()%_n - 50;
}
template<class Type>    void ShowArray(Type * array, int size)
{
    std::cout << "\nArray : " << std::endl;
 
    std::cout << array[0];
 
    for(int i=1; i<size; i++)
        std::cout << " " << array[i];
 
    std::cout << std::endl;
}
samdavydov
60 / 21 / 2
Регистрация: 23.02.2012
Сообщений: 36
24.02.2012, 01:48     Одномерный массив #5
Serejke_qq,
теперь на минуту представь, как furrio объясняет преподавателю, что такое template<class Type>.
Serejke_qq
150 / 108 / 9
Регистрация: 06.07.2011
Сообщений: 224
Завершенные тесты: 2
24.02.2012, 02:12     Одномерный массив #6
Цитата Сообщение от samdavydov Посмотреть сообщение
Serejke_qq,
теперь на минуту представь, как furrio объясняет преподавателю, что такое template<class Type>.
Про методы решения речи не было)

Заменить все отрицательные элементы массива их квадратами и упорядочить элементы массива по возрастанию.
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
#include <iostream>
#include <ctime>
#include <cstdlib>
 
template<class Type>    void RandomInput(Type * array, int size);
template<class Type>    void ShowArray(Type * array, int size);
template<class Type>    void SuperFunct(Type * array, int size);
template<class Type>    void Sort(Type * array, int size);
 
int main()
{
    int n = 10;
    int * arr = new int[n];
 
    RandomInput(arr,n);
    ShowArray(arr,n);
 
    SuperFunct(arr,n);
    ShowArray(arr,n);
 
    Sort(arr,n);
    ShowArray(arr,n);
 
    delete[] arr;
 
    return 0;
}
 
template<class Type>    void Sort(Type * array, int size)
{
    Type temp;
    for(int j=0; j<size; j++)
        for(int i=0; i<size-1; i++)
            if(array[i] > array[i+1])
            {
                temp = array[i];
                array[i] = array[i+1];
                array[i+1] = temp;
            }
}
 
template<class Type>    void SuperFunct(Type * array, int size)
{
    int count = 0;
    for(int i=0; i<size; i++)
        if(array[i] < 0)
            array[i] *= array[i];
 
}
 
template<class Type>    void RandomInput(Type * array, int size)
{
    srand(time(NULL));
 
    int _n = rand()%200;
 
    for(int i=0; i<size; i++)
        array[i] = rand()%_n - 30;
}
template<class Type>    void ShowArray(Type * array, int size)
{
    std::cout << "\nArray : " << std::endl;
 
    std::cout << array[0];
 
    for(int i=1; i<size; i++)
        std::cout << " " << array[i];
 
    std::cout << std::endl;
}
Добавлено через 20 минут

Не по теме:

забыл про эту задачу


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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#include <iostream>
#include <ctime>
#include <cstdlib>
#include <cmath>
 
template<class Type>    Type SuperFunct(Type * array, int start, int end);
template<class Type>    void RandomInput(Type * array, int size);
template<class Type>    void ShowArray(Type * array, int size);
template<class Type>    int Min_index(Type * array, int size);
 
int main()
{
    int n = 10;
    int * arr = new int[n];
 
    RandomInput(arr,n);
    ShowArray(arr,n);
 
    std::cout << "сумма после минимума по модулю = " << SuperFunct(arr,Min_index(arr,n) + 1,n);
 
    delete[] arr;
 
    return 0;
}
 
template<class Type>    int Min_index(Type * array, int size)
{
    int _ind_min = 0;
    for(int i=1; i<size; i++)
        if(abs(array[i]) < abs(array[_ind_min]))  _ind_min = i;
 
    return _ind_min;
}
 
template<class Type>    Type SuperFunct(Type * array, int start, int end)
{
    Type _sum = 0;
 
    for(int i=start; i<end; i++)    // ай-яй-яй!.. ;)
        _sum += abs(array[i]);
 
    return _sum;
}
 
template<class Type>    void RandomInput(Type * array, int size)
{
    srand(time(NULL));
 
    int _n = rand()%30;
 
    for(int i=0; i<size; i++)
        array[i] = rand()%_n - 10;
}
 
template<class Type>    void ShowArray(Type * array, int size)
{
    std::cout << "\nArray : " << std::endl;
 
    std::cout << array[0];
 
    for(int i=1; i<size; i++)
        std::cout << " " << array[i];
 
    std::cout << std::endl;
}
Считает после первого минимума..
furrio
0 / 0 / 0
Регистрация: 23.11.2010
Сообщений: 24
24.02.2012, 11:51  [ТС]     Одномерный массив #7
Цитата Сообщение от samdavydov Посмотреть сообщение
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
#include "stdafx.h"
#include "conio.h"
#include <iostream>
using namespace std;
 
int main()
{
    int n, otr, sum=0;
    cout << "Vvedite n = ";
    cin >> n;
    int *a = new int [n];
    cout << "Vvedite massiv :";
    for(int i=0; i<n; i++)
        cin >> a[i];
    for(int i=0; i<n; i++)
        {
            if (a[i]<0)
                {
                    otr+=a[i];
                }
        }
    for(int i=0; i<n; i++)
        {
//ещё думаю как сделать пункт2
        }
    cout << "temp";
    return 0;
    getch();
 
}
у меня почему то сразу закрывает окно,после ввода последного элемента массива

Serejke_qq, спасибо что подумали над моей задачей, но я больше половины не понял.
Infinity3000
1058 / 577 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
24.02.2012, 12:32     Одномерный массив #8
Цитата Сообщение от furrio Посмотреть сообщение
у меня почему то сразу закрывает окно,после ввода последного элемента массива
не так

C++
1
2
return 0;
        getch();
а вот так

C++
1
2
getch();
return 0;
Infinity3000
1058 / 577 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
24.02.2012, 14:11     Одномерный массив #9
Цитата Сообщение от furrio Посмотреть сообщение
В одномерном массиве состоящем из n-вещественных элеметов, вычислить:
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
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
#include "iostream"
#include "ctime"
#include "cmath"
#include <iomanip>
 
using namespace std;
 
int main()
{
    setlocale(0,"");
    srand(time(0));
    double n, mas[100] = {0}, sum = 0, min, mini;
    int Count = 0;
 
    cout << "Введите количество элементов в массиве - ";
    cin >> n;
    cout << "\nСгенерированный массив:\n\n";
    
    for(int i = 0; i < n; i++)
    {
        mas[i] = (50)*(double)rand() / RAND_MAX - 25;
        cout <<  fixed << setprecision(2) << mas[i] << " "; 
    }
 
    min = mas[0];
    for(int i = 0; i < n; i++)
    {
        if(mas[i] < 0)
        {
            Count++;
        }
 
        if( abs(mas[i]) < abs(min) )
        {
            min = mas[i];
            mini = i;
        }
    }
 
    
    for(int i = mini + 1; i < n; i++)
    {
        sum += mas[i];
    }
 
    cout << "\n\nКоличество отрицательных элементов в массиве - " << Count;
    cout << "\n\nМинимальный по модулю элемент массива - " << min;
    cout << "\n\nСумму модулей элементов,расположенных после минимального по модулю элемента " << sum;
 
    cout << "\n\nМассив после замены отрицательных элементов их квадратами:\n\n";
    for(int i = 0; i < n; i++)
    {
        if(mas[i] < 0)
        {
            mas[i] = mas[i] * mas[i];
        }
        cout <<  fixed << setprecision(2) << mas[i] << " ";
    }
 
    cout << "\n\nМассив упорядоченный по возрастанию:\n\n";
    for(int i = 0; i < n; i++)
    {
       for(int j = n - 1; j > i; j--)
       {
          if (mas[j-1] > mas[j])  
           {
              double x = mas[j-1]; 
              mas[j-1] = mas[j]; 
              mas[j] = x;
           }
       }
    }
 
    for(int i = 0; i < n; i++) 
    {
        cout << mas[i] << " "; //выводим массив после сортировки
    }
 
    system("pause >> null");
    return 0;
}
Миниатюры
Одномерный массив  
furrio
0 / 0 / 0
Регистрация: 23.11.2010
Сообщений: 24
24.02.2012, 14:40  [ТС]     Одномерный массив #10
Цитата Сообщение от Infinity3000 Посмотреть сообщение
#include "ctime"
Цитата Сообщение от Infinity3000 Посмотреть сообщение
#include <iomanip>
для чего вот эти библиотеки?

не понимаю :
Цитата Сообщение от Infinity3000 Посмотреть сообщение
setlocale(0,"");
srand(time(0));
Цитата Сообщение от Infinity3000 Посмотреть сообщение
cout << fixed << setprecision(2) << mas[i] << " ";
у меня работает только с n=5,10,15,20,25,30 и думаю так далее, смотрю и не могу понять почему именно кратное 5.

и почему работает русский язык? о_0

Цитата Сообщение от Infinity3000 Посмотреть сообщение
if( abs(mas[i]) < abs(min) )
abs это модуль? и если да то можно ли заменить на
C++
1
if ( fabs(mas[i]) < fabs(min) )
?
Infinity3000
1058 / 577 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
24.02.2012, 15:00     Одномерный массив #11
Цитата Сообщение от furrio Посмотреть сообщение
#include "ctime"
нужен для

C++
1
srand(time(0));
srand(time(0)); - герерация случайных элементов в массиве


Цитата Сообщение от furrio Посмотреть сообщение
#include <iomanip>
нужет для

C++
1
setprecision(2) // количество знаков после запятой в вещественном числе
Цитата Сообщение от furrio Посмотреть сообщение
и почему работает русский язык? о_0
C++
1
setlocale(0,"");
Цитата Сообщение от furrio Посмотреть сообщение
abs это модуль?
да!
Цитата Сообщение от furrio Посмотреть сообщение
и если да то можно ли заменить на
Код C++1 if ( fabs(mas[i]) < fabs(min) )
Пробуй!

Цитата Сообщение от furrio Посмотреть сообщение
у меня работает только с n=5,10,15,20,25,30 и думаю так далее, смотрю и не могу понять почему именно кратное 5.
Без понятия
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.02.2012, 15:51     Одномерный массив
Еще ссылки по теме:

Одномерный массив - C++
Нужно написать прогу с использованием статического и динамического распределения памяти. Дан массив действительных чисел. Если его...

Одномерный массив - C++
Привет. Подскажите, каким образом написать одномерный массив: У вас есть доллары. Вы хотите обменять их на рубли. Есть информация...

Одномерный массив - C++
В заданном одномерном массиве F(N) (N&lt;=50) вычислить разность между суммой элементов, стоящих на четных местах, и суммой элементов, стоящих...

Одномерный массив - C++
Реализовать класс по одномерному массиву, в методе класса реализовать поиск элементов массива Помогите пожалуйста с кодом. плиззззз

Одномерный массив! - C++
2. Задав одномерный массив вещественных данных размера NxN (N&lt;=10) (матрицу A), реализовать его обработку , как указано в варианте....


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

Или воспользуйтесь поиском по форуму:
furrio
0 / 0 / 0
Регистрация: 23.11.2010
Сообщений: 24
24.02.2012, 15:51  [ТС]     Одномерный массив #12
с fabs работает и теперь ошибки нету, работает и с другими числами
спасибо.
Yandex
Объявления
24.02.2012, 15:51     Одномерный массив
Ответ Создать тему
Опции темы

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