Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
Necronex
1 / 1 / 2
Регистрация: 19.11.2009
Сообщений: 61
1

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

22.11.2009, 19:37. Просмотров 1269. Ответов 17
Метки нет (Все метки)

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

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

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

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

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

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

17
Darky
Быдлокодер
508 / 295 / 84
Регистрация: 22.11.2009
Сообщений: 892
Завершенные тесты: 1
22.11.2009, 19:43 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

1.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream.h>
#include <conio.h>
using namespace std;
int main()
{
    int matr[5][5], i, j;
    for(i = 0 ; i < 5; ++i)
        for(j = 0; j < 5; ++j)
            std::cin>>matr[i][j];
    for(j = 0 ; j < 5; ++j)
        for(i = 0; i < 5; ++i)
            if(matr[i][j] == 0)
                goto out;
    out:
    std::cout<<"Номер столбца равен "<<j;
    getch();
    return 0;
}
Добавлено через 1 минуту
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;
}

Ах на С...
Код на С++.
Алгоритмы поймешь? Сможешь сам переделать?
2
Necronex
1 / 1 / 2
Регистрация: 19.11.2009
Сообщений: 61
22.11.2009, 19:45  [ТС] 3
а это код на С? или на С++
0
Darky
Быдлокодер
508 / 295 / 84
Регистрация: 22.11.2009
Сообщений: 892
Завершенные тесты: 1
22.11.2009, 19:47 4
На С++.
Сам переделать не сможешь?
0
Necronex
1 / 1 / 2
Регистрация: 19.11.2009
Сообщений: 61
22.11.2009, 19:49  [ТС] 5
я на с++ не работал и некторых функций не знаю и из-за этого не магу переделать
0
Darky
Быдлокодер
508 / 295 / 84
Регистрация: 22.11.2009
Сообщений: 892
Завершенные тесты: 1
22.11.2009, 19:50 6
К сожалению, с С я не работал..
1
TanT
эволюционирую потихоньку
467 / 465 / 91
Регистрация: 30.06.2009
Сообщений: 1,399
22.11.2009, 19:59 7
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

хм, в решении единсвенно что из С++ нового так это
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream.h>
#include <conio.h>
using namespace std;
int main()
{
    int matr[5][5], i, j;
    for(i = 0 ; i < 5; ++i)
        for(j = 0; j < 5; ++j)
            std::cin>>matr[i][j];
    for(j = 0 ; j < 5; ++j)
        for(i = 0; i < 5; ++i)
            if(matr[i][j] == 0)
                goto out;
    out:
    std::cout<<"Номер столбца равен "<<j;
    getch();
    return 0;
}
cout на printf , cin на scanf
#include <iostream.h> ещё от С++

Darky, говоришь с С не работал?
1
Necronex
1 / 1 / 2
Регистрация: 19.11.2009
Сообщений: 61
22.11.2009, 20:09  [ТС] 8
Цитата Сообщение от TanT Посмотреть сообщение
cout на printf , cin на scanf
#include <iostream.h> ещё от С++
это на С есть

Добавлено через 1 минуту
std:
я на С не видел
0
TanT
эволюционирую потихоньку
467 / 465 / 91
Регистрация: 30.06.2009
Сообщений: 1,399
22.11.2009, 20:10 9
cout , cin и библиотека iostream это элементы С++. в С такого нет
0
M128K145
Эксперт JavaЭксперт С++
8326 / 3547 / 420
Регистрация: 03.07.2009
Сообщений: 10,708
22.11.2009, 20:11 10
Necronex, это поддерживается на С, но не является частью языка С
Языки С и С++ являются взаимосовместимыми, но не эквивалентны. И то что ты можешь на С использовать cout не говорит о том, что это конструкция языка С
0
easybudda
Модератор
Эксперт CЭксперт С++
10120 / 6027 / 1511
Регистрация: 25.07.2009
Сообщений: 11,418
22.11.2009, 22:23 11
Цитата Сообщение от M128K145 Посмотреть сообщение
это поддерживается на С
Как ни изголялся, так и не приделался cout к программе на С. Пример не приведёте, чтобы компилировалось, как С программа?
0
M128K145
Эксперт JavaЭксперт С++
8326 / 3547 / 420
Регистрация: 03.07.2009
Сообщений: 10,708
22.11.2009, 22:56 12
easybudda, вопросы будут?
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <cstdio>
#include <iostream>
 
int main()
{
    int a;
    std::cout<<"input a:\n> ";
    scanf("%d", &a);
    std::cout<<"a = "<<a;
    printf("\ninput a:\n> ");
    std::cin>>a;
    printf("a = %d\n", a);
    system("pause");
    return 0;
}
ЗЫ. полазь по форуму. Много новичков пишет на смеси С и С++
0
Gravity
569 / 563 / 64
Регистрация: 29.01.2009
Сообщений: 1,274
22.11.2009, 23:12 13
Дело в том, что эти новички юзают C++'ные среды, где новый исходник по дефолту создается с расширением .cpp и обрабатывается cpp'шным компилятором. Если бы они сохранили код, как в примере выше, в c-файле и попытались запустить, то получили бы кучу ошибок, потому что сишный компилятор не знает никаких iostream'ов и cout'ов (можно, конечно, самому втюхать компоновщику нужные библиотеки, но это извращение ).
0
easybudda
Модератор
Эксперт CЭксперт С++
10120 / 6027 / 1511
Регистрация: 25.07.2009
Сообщений: 11,418
23.11.2009, 00:37 14
Цитата Сообщение от M128K145 Посмотреть сообщение
вопросы будут?
Ага, есть один: чё это оно мне написа'ло?
Код
C:\cpp\Other>gcc -o M128K145.exe M128K145.c
M128K145.c:1:18: cstdio: No such file or directory
M128K145.c:2:20: iostream: No such file or directory
M128K145.c: In function `main':
M128K145.c:7: error: syntax error before ':' token
M128K145.c:9: error: duplicate label `std'
M128K145.c:7: error: `std' previously defined here
M128K145.c:9: error: syntax error before ':' token
M128K145.c:11: error: duplicate label `std'
M128K145.c:7: error: `std' previously defined here
M128K145.c:11: error: syntax error before ':' token
Цитата Сообщение от M128K145 Посмотреть сообщение
Много новичков пишет на смеси С и С++
Так они на то и новички, чтоб не ведать, что творят...
0
Ellesar
0 / 0 / 0
Регистрация: 20.11.2009
Сообщений: 11
23.11.2009, 00:40 15
Сёма все таки не сделал 4 лабу!!!!
0
M128K145
Эксперт JavaЭксперт С++
8326 / 3547 / 420
Регистрация: 03.07.2009
Сообщений: 10,708
23.11.2009, 00:45 16
Цитата Сообщение от easybudda Посмотреть сообщение
Так они на то и новички, чтоб не ведать, что творят..
Мой пост относился к подчеркнутому тексту и ничего более
Цитата Сообщение от Necronex Посмотреть сообщение
Цитата Сообщение от TanT Посмотреть сообщение
cout на printf , cin на scanf
#include <iostream.h> ещё от С++
это на С есть
Я сам не люблю когда смешивают эти языки
0
Necronex
1 / 1 / 2
Регистрация: 19.11.2009
Сообщений: 61
23.11.2009, 13:45  [ТС] 17
скажите плиз а что за функция std
0
M128K145
Эксперт JavaЭксперт С++
8326 / 3547 / 420
Регистрация: 03.07.2009
Сообщений: 10,708
23.11.2009, 20:08 18
Necronex, это не функция. Это стандартное пространство имен(standart сокращенно std)
Потоки cin и cout находятся в этом пространстве имен. Обращения к содержимому пространства имен происходит через ::
std::cout - обращение к потоку из стандартного пространства имен
1
23.11.2009, 20:08
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.11.2009, 20:08

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

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

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


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

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

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