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

В одномерном массиве - C++

Восстановить пароль Регистрация
 
meowsaw
0 / 0 / 0
Регистрация: 05.06.2012
Сообщений: 29
13.06.2012, 18:47     В одномерном массиве #1
I. В одномерном массиве, состоящим из n-целых элементов, вычислить:
1) Кол-во положительных элементов массива.
2) Сумму эл-ов массива, расположенных после последнего эл-та равного нулю. Преобразовать массив таким образом , чтобы сначала располагались все эл-ты, целая часть которых не превышая 1, а потом все остальное.

II. Уплотнить заданную матрицу, удаляя из нее строки и столбы, заполненные нулями.
Найти номер первой из строк, содержащих хотябы один положительный элемент.

!!! Использовать динамические массивы.

Добавлено через 2 часа 34 минуты

Добавлено через 1 минуту
ребят, помогите пожалуйста, оч срочно
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.06.2012, 18:47     В одномерном массиве
Посмотрите здесь:

сортировка в одномерном массиве C++
C++ В одномерном массиве,состоящем из...
C++ О одномерном массиве
C++ Пары в одномерном массиве
максимум в одномерном массиве C++
C++ В Одномерном массиве
Вычисления в одномерном массиве C++
Вычисления в одномерном массиве C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
yleart
 Аватар для yleart
60 / 45 / 1
Регистрация: 07.10.2011
Сообщений: 139
13.06.2012, 19:57     В одномерном массиве #2
1)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include<iostream>
int main()
{
    int n;
    std::cout << "Enter lenght ";
    std::cin >> n;
    int * a;
    a = new int [n];
    std::cout << "Enter elements: ";
    int q = 0;
    for (int i = 0; i < n; ++i)
    {
        std::cin >> a[i];
        if (a[i] > 0)
            ++q;
    }
    std::cout << "Positive elements: "<< q << std::endl;
    return 0;
    
}
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
#include<iostream>
int main()
{
    int n;
    std::cout << "Enter lenght: ";
    std::cin >> n;
    if (n < 1)
    {
        std::cout << "Error!\n";
        return 0;
    }
    float * a;
    a = new float [n];
    std::cout << "Enter elements: ";
    int q = -1;
    for (int i = 0; i < n; ++i)
    {
        std::cin >> a[i] ;
        if (a[i] == 0 && q < i)
        {
            q = i;
        }
    }
    int sum = 0;
    for (; q < n; ++q)
    {
        sum += a[q];
    }
    std::cout << "Sum: " << sum << std::endl;
    for(int i=0; i < n; ++i)
        for (int j = n - 1; j > i; --j)
        {
            if(a[j-1] > a[j])
            {
                int k;
                k = a[j-1];
                a[j-1] = a[j];
                a[j] = k;
            }
        }
    return 0;
}
Проверил только на компиляцию, в логике возможны ошибки, исправлю

Добавлено через 38 минут
1)
Перед return 0; вставь строку
C++
1
delete []a
2)
Перед return 0; вставь эти строчки:
C++
1
2
3
for (int i = 0; i < m; ++i)
     delete matrix[i];
delete []matrix;
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
#include<iostream>
//Функция поиска первой строки в которой есть положительный элемент
int SearchElement(int **matrix, int n, int m);
int main()
{
int m,n;
    int **matrix;
    std::cout << "Enter n:";
    std::cin >> n;
    std::cout << "Enter m:";
    std::cin>>m;
    matrix=new int *[n];
    for (int i = 0;i < m; ++i)
        matrix[i]=new int [m];
    std::cout << "Enter elements: ";
    for(int i = 0; i < n; ++i)
        for(int j = 0; j < n; ++j)
            std::cin >> matrix[i][j];
    int q;
    q = SearchElement(matrix, n, m);
    if (q != -1)
    std::cout << "First row with positive element: " << q << std::endl;
    else 
    std::cout << "Error!" << std::endl;
    for (int i = 0; i < m; ++i)
        delete matrix[i];
    delete matrix;
    return 0;
    
    
}
int SearchElement(int **matrix, int n, int m)
{
    for (int i = 0; i < n ; ++i)
        for(int j = 0; j < m; ++j)
            if(matrix[i][j] > 0)
                return i;
    return -1;
}
А вот как очистить матрицу от нулевых столбцов и строк без использования <vector> или дополнительного массива я не знаю..
Yandex
Объявления
13.06.2012, 19:57     В одномерном массиве
Ответ Создать тему
Опции темы

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