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

Массивы - C++

Восстановить пароль Регистрация
 
Bais
0 / 0 / 0
Регистрация: 14.09.2011
Сообщений: 4
15.09.2011, 08:03     Массивы #1
Помогите разобраться с задачами, а то препод задал, а объяснить не смог нормально...=(
за ранее спасибо, вот те задачи:

Одномерный массив
Вариант 3
В одномерном массиве, состоящем из η целочисленных элементов, вычислить:
1) произведение элементов массива с четными номерами;
2) сумму элементов массива, расположенных между первым и последним нулевыми элементами.
Преобразовать массив таким образом, чтобы сначала располагались все положительные элементы, а потом – все отрицательные (элементы, равные нулю, считать положительными).

Двумерные массивы
Вариант 3
Дана целочисленная прямоугольная матрица. Определить:
1) количество столбцов, содержащих хотя бы один нулевой элемент;
2) номер строки, в которой находится самая длинная серия одинаковых элементов.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.09.2011, 08:03     Массивы
Посмотрите здесь:

Циклические массивы;Многомерные массивы!!!Срочно бы) C++
Одномерные массивы, Работа со строками, Многомерные массивы. C++
C++ Попадание точки. Массивы чисел. Массивы записей.
Целочисленная арифметика ,Одномерные массивы ,Двумерные массивы C++
Указатели и массивы. Индексация с помощью указателей. Передача массивов в функции. Динамические массивы (обработка матриц) C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Петррр
 Аватар для Петррр
5915 / 3352 / 333
Регистрация: 28.10.2010
Сообщений: 5,926
15.09.2011, 08:54     Массивы #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
#include <iostream>
#include <cstdlib>
 
using namespace std;
 
int main (int argc, char *argv[])
{
    srand(time(0));
    const int n = 10;
    int array[n];
    
    int p; 
    p = 1;
    int posZero = -1;
    for(int i = 0; i < n; i++)
    {
        array[i] = rand() % 10;
        cout << array[i] << " ";
        if (i % 2 == 0)
            p *= array[i];
        if (posZero == -1 && array[i] == 0)
            posZero = i;
    }
    int lastZero = -1;    
    for(int i = n - 1; i >= 0; i--)
        if (array[i] == 0)
        {
            lastZero = i;
            break;
        }
    int sum = 0;
    if (posZero != -1 && lastZero != -1 && posZero != lastZero)
    {
        for(int i = posZero; i < lastZero; i++)
            sum += array[i];
        cout << "\nСумма мужде первым и последним нулевым элементом: " << sum << endl;
    }
    else
        cout << "\nВ массиве нет двух нулей." << endl; 
    cout << "\nПроизведение элементов на четных местах: " << p;
    
        
    return 0;
}
Добавлено через 17 минут
Вторая задача:
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
#include <iostream>
#include <cstdlib>
using namespace std;
 
int main (int argc, char *argv[])
{
    const int n = 10;
    const int m = 7;
    int array[n][m];
    srand(time(0));
    for(int i = 0; i < n; i++)
    {
        for(int j = 0; j < m; j++)
        {
            array[i][j] = rand() % 20;
            cout.width(3);
            cout << array[i][j];
        }
        cout << endl;
    }
    int colCount = 0;
    for(int i = 0; i < m; i++)
        for(int j = 0; j < n; j++)
            if (array[i][j] == 0)
            {
                colCount++;
            }
    cout << "Количество столбцов с нулевыми элементами: " << colCount;
    int row = -1;
    int series = 0;
    int col = 0;
    int element;
    for(int i = 0; i < n; i++)
        for(int j = 0; j < m - 1; j++)
        {
            int pSeries = 0;
            col = j + 1;
            while (array[i][j] == array[i][col] && col < m)
            {
                pSeries++;
                col ++;
            }
            if (pSeries > series)
            {
                series = pSeries;
                row = i;
                element = array[i][j];
            }
        }
    cout << "\nСтрока с самой длиной цепочкой одинаковых элементов: " << row << "\n";
    cout << "Сирия состоит из " << (series + 1) << "(ти элементов)\n";
    cout << "Элемент серии равен: " << element << "\n";
    return 0;
}
easybudda
15.09.2011, 09:15
  #3

Не по теме:

Цитата Сообщение от Bais Посмотреть сообщение
препод задал, а объяснить не смог нормально...=(
за ранее спасибо
Препод по русскому, тоже что-то упустил...

Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
15.09.2011, 10:13     Массивы #4
Цитата Сообщение от Bais Посмотреть сообщение
элементы, равные нулю, считать положительными

Не по теме:

Звучит то еще... Тогда уж сформулировать задание так нужно:

Преобразовать массив таким образом, чтобы сначала располагались все неотрицательные элементы, а потом – все отрицательные

Петррр
 Аватар для Петррр
5915 / 3352 / 333
Регистрация: 28.10.2010
Сообщений: 5,926
15.09.2011, 10:40     Массивы #5
Преобразовать массив таким образом, чтобы сначала располагались все положительные элементы, а потом – все отрицательные (элементы, равные нулю, считать положительными).
Этого я не сделал.
Bais
0 / 0 / 0
Регистрация: 14.09.2011
Сообщений: 4
15.09.2011, 18:53  [ТС]     Массивы #6
вау спс огромное) про русский тож правда
Yandex
Объявления
15.09.2011, 18:53     Массивы
Ответ Создать тему
Опции темы

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