0 / 0 / 0
Регистрация: 03.06.2019
Сообщений: 81
1

Найти количество строк матрицы, содержащих нулевые элементы

09.09.2019, 17:12. Показов 3253. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дана квадратная матрица. элементы матрицы заполняются рандомно. Найти количество строк, содержащих нулевые элементы и номер столбца с наибольшим числом одинаковых элементов.
Изначально все вроде работало нормально, а теперь считается не количество строк, а именно количество нулей. а столбец с наибольшим количеством одинаковых элементов всегда указывается последним.
Можете подсказать в чем проблема. использую codeblocks, на visual studio из-за массива не запускается.
Вот код:
C++ (Qt)
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
#include <stdio.h>
#include<locale.h>
#include<ctime>
#include<cstdlib>
    int main()
    {
        setlocale(LC_ALL,"Russian");
        srand(time(NULL));
        int i, j, max=0, min=0,n,k;
        double  b, sum=0;
        printf ("Введите размерность матрицы: ");
        scanf("%d", &n);
k = n;
double a[n][k];
        for(i=0; i<n; i++)
        {
            for (j=0; j<k;j++)
            {
                a [i][j] = ((rand() % (10-0)+0));
            }
        }
        printf("\n матрица:\n\n");
        for(i=0;i<n;i++)
        {
            for(j=0;j<k;j++)
                printf("%.0lf\t", a[i][j]);
            printf("\n");
        }
    int count(0);
    for(i = 0; i < n; ++i){
        for(j = 0; j < k; ++j){
            if(a[j][i] == 0)
                ++count;
        }
    }
       printf("количество строк, содержащих хотя бы один нулевой элемент: %d\n", count);
          for (int i = 0; i <n; i++)
            {
                for (int j = 0; j <k; j++);
              int t = 0;
 
            for (int j = 0; j < n-1; j++)
            {
                for (int i = 0; i < k; i++)
                {
                    if (a[i, j] == a[ i,j+1 ])
                       t = t + 1;
                    if (max < t)
                    {
                        max = t;
                        k = i + 1;
                    }
                }
            }
          }
            printf("Наибольшее число одинаковых элементов в столбце № %d", k);
           printf("\n");
        }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.09.2019, 17:12
Ответы с готовыми решениями:

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

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

Найти количество нечетных элементов в матрице, расположенных в строках, содержащих нулевые элементы
Найти количество нечетных элементов в матрице, расположенных в строках, содержащих нулевые...

Определить количество строк матрицы, имеющих нулевые элементы на главной диагонали
1.Предоставленная матрица размером n*n.Определить количество строк, имеющих нулевые элементы на...

4
6578 / 4563 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
09.09.2019, 17:43 2
Цитата Сообщение от Igor912 Посмотреть сообщение
Можете подсказать в чем проблема. использую codeblocks, на visual studio из-за массива не запускается.
Цитата Сообщение от Igor912 Посмотреть сообщение
double a[n][k];
Visual c++ не поддерживает такое.
Нужно использовать что-то типа std::vector<std::vector<int>> a(k, std::vector<int>(n));
Т.е. распределять такой массив динамически.
0
0 / 0 / 0
Регистрация: 03.06.2019
Сообщений: 81
09.09.2019, 17:55  [ТС] 3
вопрос с массивом не первой важности. я написал про visual для того, чтобы люди на visual не проверяли. код нужен именно в codeblocks (так как в моем колледже такие компы, что тянут только его). больше меня интересует вот эта часть (Найти количество строк, содержащих нулевые элементы и номер столбца с наибольшим числом одинаковых элементов.)
0
Вездепух
Эксперт CЭксперт С++
11192 / 6134 / 1679
Регистрация: 18.10.2014
Сообщений: 15,436
09.09.2019, 19:10 4
Цитата Сообщение от Igor912 Посмотреть сообщение
Изначально все вроде работало нормально, а теперь считается не количество строк, а именно количество нулей.
Ну зачем вы нас обманываете? Никогда этот код не считал количества строк. Написан именно подсчет количества нулей.

Не говоря уже об этой бредятине

C++
1
for (int j = 0; j <k; j++);
C++
1
if (a[i, j] == a[ i,j+1 ])
Что это вообще? Так что и столбец у вас никогда правильно не рапортовался.
0
515 / 407 / 188
Регистрация: 08.04.2013
Сообщений: 1,738
09.09.2019, 20:48 5
Цитата Сообщение от Igor912 Посмотреть сообщение
Найти количество строк, содержащих нулевые элементы
C++
1
2
3
4
5
6
7
8
9
10
    int count(0);
    for(i = 0; i < n; ++i){
        bool str =false;
        for(j = 0; j < k; ++j){
            if(a[i][j] == 0 && !str ) {
                ++count; str=true;
            }
        }
    }
       printf("количество строк, содержащих хотя бы один нулевой элемент: %d\n", count);
А со вторым условие вы и так справитесь ))
0
09.09.2019, 20:48
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.09.2019, 20:48
Помогаю со студенческими работами здесь

Определить количество строк матрицы, содержащих только отрицательные элементы
Дана матрица размером МxN. Определить количество строк, содержащих только отрицательные элементы.

Найти номер последней из строк матрицы, содержащих максимальное количество одинаковых элементов
Можете скинуть код от этой задачи плз Matrix40. Дана целочисленная матрица размера M × N....

Найти номер последней из строк матрицы, содержащих максимальное количество одинаковых элементов
Дана целочисленная матрица размера M х N. Найти номер последней из ее строк, содержащих...

В каждом столбце матрицы определить номера строк, имеющих нулевые элементы
В каждой колонке двумерного массива Q определить номера строк, имеющих нулевые элементы


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru