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

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

Войти
Регистрация
Восстановить пароль
 
Iliabobr
3 / 3 / 1
Регистрация: 04.11.2009
Сообщений: 98
#1

Определить количество строк матрицы, содержащих хотя бы один нулевой элемент - C++

11.04.2011, 01:46. Просмотров 705. Ответов 10
Метки нет (Все метки)

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

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

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

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

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

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

Определить количество строк, содержащих хотя бы один нулевой элемент - C++
Здравствуйте, дорогие форумчане. На предмете программирования задали написать программу по заданию: Дана целочисленная...

10
CEBEP
107 / 107 / 9
Регистрация: 21.03.2010
Сообщений: 444
11.04.2011, 05:07 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
ноккр - это что? НОК что ли?

Добавлено через 33 минуты
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
/*приветствую)
в общем надо срочно плз решить тему):
Дана целочисленная квадратная матрица.
1. определить количество строк, содержащих хотя бы один нулевой елемент(была у меня подобная проблема, но получалось найти тока строки где есть несколько нулевых)
2. ноккр столбца, в котором находится самая длинная серия одинаковых элементов
=) */
#include <iostream>
 
int coutnStrOfConteinSomeNumber(const double* matrix, int w/*eith*/, int h/*eight*/,const double& serchNumber)
{
    int count = 0,//счётчик
        size = w * h,//колличество элементов матрицы
        i = 0;//всякий бегунок
 
    while(size)
    {
        while(i < w)
            if(matrix[size - ++i] == serchNumber)
            {
                ++count;
                i = w;
            }
        size -= w;
        i = 0;
    }
 
    return count;
}
 
double stupidFunctionHowWeCanUzeTheirFTW(const double* matrix, int w/*eith*/, int h/*eight*/)
{
    int length,//текущая длинна измеряемого ряда
        i = 0,//итератор столбцов
        j,//итератор строк
        max = 0,//строка с максимальной длинной
        maxRaw = 0;/*Максимальная длинна ================>*/
    for(; i < h; ++i)
        for(j = 0; j < w; j += length)//некоторых преподов разрывает от использования фора вне контекста определённого количества итераций, ну перепиши на while
        {
            length = 0;
            while(j + ++length < w && matrix[i * w + j] == matrix[i * w + j + length] ) {   }//да, да... it's all my private life)))
            std::cout << i << ": " << j << " + " << length << '\n';
            if(length > maxRaw)
            {
                maxRaw = length;
                max = i;
            }
        }
    /*
    ВАЖНЫЙ КОМЕНТ
    ||
    ||
    ||
    ||
    ||
    \/
    ВОЗВРАЩАЕТ ПРОСТО ТУ САМУЮ СТРОКУ, Я ХЗ ЧТО ТАКОЕ ноккр, КАК УЗНАЕШЬ, САМ ДОПИШИ, ЕСЛИ ЭТО НОК ТО ЭТО ЕЩЁ И НЕ ТРУДНО
    /\
    ||
    ||
    ||
    ||
    ||*/
    return max;
}
 
int main(void)
{
    double someMatrix[][3] = {{1 ,0 ,0 },
                              {9 ,9 ,0 },
                              {23,23,23}};
 
    std::cout << "Число строк строк содержащих ноль: " << coutnStrOfConteinSomeNumber((double*)someMatrix, 3, 3, 0) << '\n'
              << "НОК строки содержащей самый длинный ряд повторяющихся чисел: " << stupidFunctionHowWeCanUzeTheirFTW((double*)someMatrix, 3, 3) << '\n';
    return 0;
}
0
taras atavin
3570 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
11.04.2011, 07:11 #3
Цитата Сообщение от CEBEP Посмотреть сообщение
ноккр - это что? НОК что ли?
А по-моему кривой НОК, что ни будь типа НОК случайных соседей в диапазоне +/- 15%.
0
CEBEP
107 / 107 / 9
Регистрация: 21.03.2010
Сообщений: 444
11.04.2011, 12:54 #4
Цитата Сообщение от taras atavin Посмотреть сообщение
А по-моему кривой НОК
там есть комент... я не уверен что топикстартер под "ноккр" имеет введу НОК, по этому я не стал писать алгоритм нахождения НОК а просто нашел строку в которой его надо искать и сейчас функция возвращает просто номер строки
0
Iliabobr
3 / 3 / 1
Регистрация: 04.11.2009
Сообщений: 98
11.04.2011, 22:06  [ТС] #5
Ой не ноккр , а номер
0
CEBEP
107 / 107 / 9
Регистрация: 21.03.2010
Сообщений: 444
11.04.2011, 22:12 #6
ну шикарно, тогда всё уже готово
1
Iliabobr
3 / 3 / 1
Регистрация: 04.11.2009
Сообщений: 98
12.04.2011, 03:27  [ТС] #7
да, вроде всё четко работает)
но ещё бы сделать чтобы матрицу с клавы вводить...

Добавлено через 1 минуту
еще я не понимаю что делает функция stupidFunctionHowWeCanUzeTheirFTW
я думаю она и не нужна..
0
CEBEP
107 / 107 / 9
Регистрация: 21.03.2010
Сообщений: 444
12.04.2011, 03:36 #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
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
/*приветствую)
в общем надо срочно плз решить тему):
Дана целочисленная квадратная матрица.
1. определить количество строк, содержащих хотя бы один нулевой елемент(была у меня подобная проблема, но получалось найти тока строки где есть несколько нулевых)
2. ноккр столбца, в котором находится самая длинная серия одинаковых элементов
=) */
#include <iostream>
 
int coutnStrOfConteinSomeNumber(const double* matrix, int w/*eith*/, int h/*eight*/,const double& serchNumber)
{
        int count = 0,//счётчик
                size = w * h,//колличество элементов матрицы
                i = 0;//всякий бегунок
 
        while(size)
        {
                while(i < w)
                        if(matrix[size - ++i] == serchNumber)
                        {
                                ++count;
                                i = w;
                        }
                size -= w;
                i = 0;
        }
 
        return count;
}
 
int stupidFunctionHowWeCanUzeTheirFTW(const double* matrix, int w/*eith*/, int h/*eight*/)
{
        int length,//текущая длинна измеряемого ряда
                i = 0,//итератор столбцов
                j,//итератор строк
                max = 0,//строка с максимальной длинной
                maxRaw = 0;/*Максимальная длинна ================>*/
        for(; i < h; ++i)
                for(j = 0; j < w; j += length)//некоторых преподов разрывает от использования фора вне контекста определённого количества итераций, ну перепиши на while
                {
                        length = 0;
                        while(j + ++length < w && matrix[i * w + j] == matrix[i * w + j + length] ) {   }//да, да... it's all my private life)))
                        if(length > maxRaw)
                        {
                                maxRaw = length;
                                max = i;
                        }
                }
        return max;
}
 
int main(void)
{
    int w, h;
    std::cout << "Введите число строк и столбцов в матрице: ";
    std::cin >> h;
    std::cin >> w;
 
 
        double *someMatrix = new double[w * h];
    for(int i = 0, j; i < h; ++i)
        for(j = 0; j < w; ++j)
        {
            std::cout << "Введите элемент [" << i + 1 << "][" << j + 1 << "]: ";
            std::cin >> someMatrix[w * i + j];
        }
 
        std::cout << "Число строк строк содержащих ноль: " << coutnStrOfConteinSomeNumber(someMatrix, w, h, 0) << std::endl
            << "НОК строки содержащей самый длинный ряд повторяющихся чисел: " << stupidFunctionHowWeCanUzeTheirFTW(someMatrix, w, h) + 1 << '\n';
        return 0;
}
0
Iliabobr
3 / 3 / 1
Регистрация: 04.11.2009
Сообщений: 98
12.04.2011, 03:53  [ТС] #9
НОК не нужен, надо номер столбца)
0
CEBEP
107 / 107 / 9
Регистрация: 21.03.2010
Сообщений: 444
12.04.2011, 04:59 #10
поменяй текст, там всё нормально
1
Iliabobr
3 / 3 / 1
Регистрация: 04.11.2009
Сообщений: 98
15.04.2011, 02:42  [ТС] #11
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
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
#include<iostream.h>
 
//template<class T> T max(T *a, int m, int n);
int nuts(int **a, int m, int n);
int nuts1(int **a, int m, int n);
 
int main()
{
    int **a=NULL;
    int m, n;
    int i, h =0;
    cout<<"Vvod razmernosti"<<endl;
    cout<<"m: ";
    cin>>m;
    cout<<"n: ";
    cin>>n;
    a= new int *[m];
 
    cout<<"Vvod matricy iz "<<m;
    cout<<" strok i "<<n<<" stolbov: ";
    cout<<endl;
    for(i=0;i<m;i++)
    {
        a[i]=new int [n];
        for (int j=0; j<n; j++)
            cin>>a[i][j];
    }
    for (i=0;i<m;i++)
    {
        cout<<endl;
        for (int j=0; j<n;j++)
            cout<<a[i][j]<<"  ";
    }
    cout<<"strok s '0' : "<<nuts(a,m,n)<<'\n';
    cout<<endl;
    cout<<"Naib. chislo: "<<nuts1(a,m,n)<<'\n';// else cout<<"Net povtorov"<<'\n';
    cout<<endl;
    delete[] a;
    return 0;
}
int nuts(int **a, int m, int n)
{
    int i, j, l;
    l=0;
    for(i=0; i<m; i++)
    for(j=0; j<n; j++)
    { if (a[i][j]<0) l++; j=0;}
 
 
 
 
 
 
/*  while(j< n)
    {
        for(i=0; i<m; i++)
            if(a[i][j]<0){  
                l++;}
        j++;
    }*/
        return l;
}
препрод не одобряет чёто гад, попытался 1 пункт сам переделать , цикл не идет нормально..
0
15.04.2011, 02:42
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.04.2011, 02:42
Привет! Вот еще темы с ответами:

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

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

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

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


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

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

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