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

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

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

2 мерный масив - C++

19.11.2009, 10:32. Просмотров 447. Ответов 1
Метки нет (Все метки)

Дана целочисленная прямоугольная матрица. Определить:
1) количество строк, содержащих хотя бы один нулевой элемент;
2) номер столбца, в котором находится самая длинная серия одинаковых элементов.
помогите полиз мне надо на С
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.11.2009, 10:32
Здравствуйте! Я подобрал для вас темы с ответами на вопрос 2 мерный масив (C++):

3-x мерный масив. - C++
Подскажыте как сделать указатель на 3-х мерный масив???. Желательно пример. Спасибо.

Динамический масив: записать в масив все делители числа n - C++
Нужно записать в масив все делители числа n програма запускается но видает ошибку доступа к памяти... помогите разобраться #include...

Масив на 18 действ. Упорядочить по возростанию масив - C++
Ребята помогите пожалуйста с С++ Builder 1.Масив на 18 действ. Упорядочить по возростанию масив 2.Масив на 18 действ. Вычислить...

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

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

5-ти мерный массив - C++
написал функцию Проблема в том, что содержимое массива создается локально, а мне надо глобально То есть в строке 64 выводит все...

1
-=ЮрА=-
Заблокирован
Автор FAQ
19.11.2009, 14:36 #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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
#include <windows.h>
#include <stdio.h>
 
//Проверяет содержит ли строка 
//нулевые элементы и возвращает их кол-во
int IsZeroInRow(int n, int * pRow);
 
//Выделяет из строки столбец iCol
//Возвращаемый результат указатель на данный столбец pCol
int * GetColumn(int m, int n, int iCol, int ** mass, int * pCol);
 
//Ищет последовательность одинаковых элементов 
//в столбце pCol, возвращаемое значеие макс число
//одинаковых элементов 
int GetSequence(int m, int * pCol);
 
int ** mass = (int **)malloc(sizeof(int));
//Содержит число одинаковых элементов в каждом столбце
int * pCol = (int *) malloc(sizeof(int));
 
void main()
{
    printf("Enter num of Rows : ");
    int m;scanf("%d",&m);
    printf("Enter num of Cols : ");
    int n;scanf("%d",&n);
 
    mass = (int **)realloc((void *)mass,sizeof(int)*m);
    pCol = (int *)realloc((void *)pCol,sizeof(int)*m);
 
    printf("\tEnter elements of massiv\r\n");
    for(int i = 0,nRows = 0,j;i < m; i++)
    {
        mass[i] = (int *)malloc(sizeof(int)*n);
        for(j = 0; j < n; j++)
        {
            printf("mass[%d][%d] = ",i,j);
            scanf("%d",&mass[i][j]);
        }
        if(IsZeroInRow(n, mass[i]))
            nRows++;
    }
 
    int jmax  = 0;
    int nSame = 0;
    int iBuf  = 0;
    pCol =  GetColumn(m, n, jmax, mass, pCol);
    nSame = GetSequence(m, pCol);
    for(j = 1; j < n; j++)
    {
        pCol = GetColumn(m, n, j, mass, pCol);
        iBuf = GetSequence(m, pCol);
        if(nSame < iBuf)
        {
            nSame = iBuf;
            jmax  = j;
        }
    }
    printf("Num of Rows with zero elements : %d\r\n",nRows);
    printf("Column with max count of same elements : %d\r\n",jmax);
 
    mass = (int **)realloc((void *)mass,sizeof(int));
    pCol = (int *)realloc((void *)pCol,sizeof(int));
 
    printf("Press NUM1 to enter new massiv\r\n");
    scanf("%d",&iBuf);
    if(iBuf == 1)
        main();
    free(mass);
    free(pCol);
}
 
int IsZeroInRow(int n, int * pRow)
{
    int nCount = 0;
    if(pRow && 0 < n)
    {
        for(int i = 0; i < n; i++)
        {
            if(pRow[i] == 0)
                nCount++;
        }
    }
    return nCount;
}
 
int GetSequence(int m, int * pCol)
{
    int nSame = 0;
    if(pCol && 0 < m)
    {
        int iBuf = 1;
        int Elem = pCol[0];
        for(int i = 0,j; i < m; i++)
        {
            iBuf = 1;
            Elem = pCol[i];
            for(j = i + 1; j < m; j++)
            {
                if(pCol[j] == Elem)
                    iBuf++;
            }
            if(nSame < iBuf)
                nSame = iBuf;
        }
    }
    return nSame;
}
 
int * GetColumn(int m, int n, int iCol, int ** mass, int * pCol)
{
    if(pCol && mass && iCol < n)
    {
        for(int i = 0; i < m; i++)
            pCol[i] = mass[i][iCol];
    }
    return pCol;
}
1
Миниатюры
2 мерный масив  
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.11.2009, 14:36
Привет! Вот еще темы с ответами:

n-мерный массив - C++
Вопрос заключается в следующем: Как задать n-мерный массив в описании класса, если на начальной стадии неизвестна его размерность? Или...

m - мерный массив - C++
Дано n точек m мерного пространства, каждая точка имеет массу. Найти координаты точки наиболее удаленной от точки центра масс. Помогите...

динамический 2-х мерный массив - C++
помогите плиз вот код , нужно составить динамический 2-х мерный массив double **a int n,m,l; scanf(&quot;%d%d&quot;,&amp;n,&amp;m); a=(double **)...

N-мерный массив в векторе - C++
Здравствуйте. Можно ли в векторе хранить n-мерный массив. т.е. я с клавиатуры ввожу размерность n массива и потом заполняю сам массив.


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

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

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