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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 20, средняя оценка - 4.85
Умница++
0 / 0 / 0
Регистрация: 23.12.2008
Сообщений: 13
#1

Необходимо подсчитать количество строк матрицы, которые не содержат ни одного 0 элемента. - C++

23.12.2008, 11:00. Просмотров 2566. Ответов 19
Метки нет (Все метки)

Ребята, помогите пожалуйста разобраться с задачкой.

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

Мои мысли таковы. Матрицу уже сформировала.
Для подсчета, такая идея: По циклу нахожу нулевые элементы (mas[i][j]==0)
и заношу их в новый одномерный массив. Далее подсчитываю там количество неповторяющихся элементов (это будет количество строк, содержащих нулевые элементы)
Ну а потом из всего количества строк, вычитаю эти строки и получу, количество строк, где нет 0 элементов.

Не знаю, может я очень сложно придумала и есть что-то проще.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.12.2008, 11:00     Необходимо подсчитать количество строк матрицы, которые не содержат ни одного 0 элемента.
Посмотрите здесь:

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

Определить сумму элементов для тех строк, которые не содержат ни одного отрицательного элемента - C++
Написал код, но он строки не определяет, а просто плюсует положительные числа в строке... int a, min = -10, max = 40; for...

Подсчитать количество строк текстового файла f, которые содержат цифры - C++
Дано файл f.Подсчитать количество строк файла f, которые содержат цифры.

Скопировать из файла в файл все строки, которые не содержат цифры. Подсчитать количество строк по условию - C++
Скопировать из файла F1 в файл F2 все строки, которые не содержат цифры. Подсчитать количество строк, которые начинаются на букву «А» в...

Подсчитать количество отрицательных элементов в строках матрицы, которые содержат хотя бы один нулевой элемент - C++
#include "stdafx.h" #include <iostream> #include <conio.h> using namespace std; int main(int argc, char** argv) { int...

Найти количество столбцов матрицы, которые не имеют ни одного нулевого элемента - C++
дано целочисельную прямокутную матрицу.Найти: 1)Количество столбцов которые неимеют ниодново нульового елемента. 2)номер рядка в...

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Lord_Voodoo
Супер-модератор
8584 / 2184 / 61
Регистрация: 07.03.2007
Сообщений: 10,868
Завершенные тесты: 1
23.12.2008, 11:28     Необходимо подсчитать количество строк матрицы, которые не содержат ни одного 0 элемента. #2
да все можно сделать просто... сканируем матрицу... нашли в строке 0, от общего кол-ва отнимаем единицу, переходим на новую строку... и так до конца... что останется - это нужное кол-во... так и быстрее и памяти меньше
Умница++
0 / 0 / 0
Регистрация: 23.12.2008
Сообщений: 13
23.12.2008, 12:21  [ТС]     Необходимо подсчитать количество строк матрицы, которые не содержат ни одного 0 элемента. #3
Ммм....из общего количества вычесть 1 и перейти на новую строку.......

Это так примерно:
C++
1
2
3
4
5
for (i=0; i<n; i++)                     //строки
{ for (j=0; j<m; j++)                 //столбцы
   if (mas[i][j]==0)                    // элемент=0
       n=n-1;                            //из общего количества строк вычитаем 1
}
Просто к сожалению нет возможности проверить сейчас код, а понять надо сейчас :0))
Lord_Voodoo
Супер-модератор
8584 / 2184 / 61
Регистрация: 07.03.2007
Сообщений: 10,868
Завершенные тесты: 1
23.12.2008, 12:45     Необходимо подсчитать количество строк матрицы, которые не содержат ни одного 0 элемента. #4
нет, так не будет корректно, если 0 будет больше одного, надо еще и break поставить... чтобы сразу же после первого 0 был переход на другую строку
Умница++
0 / 0 / 0
Регистрация: 23.12.2008
Сообщений: 13
24.12.2008, 01:01  [ТС]     Необходимо подсчитать количество строк матрицы, которые не содержат ни одного 0 элемента. #5
Спасибо большое за идею, вечером попробою зашкодить, надеюсь получится :0))))

Добавлено через 11 часов 56 минут 15 секунд
Ну вот, что-то никак не получается :0(((((((
XuTPbIu_MuHTAu
Эксперт С++
2224 / 739 / 10
Регистрация: 27.05.2008
Сообщений: 1,508
24.12.2008, 05:03     Необходимо подсчитать количество строк матрицы, которые не содержат ни одного 0 элемента. #6
C++
1
2
3
4
5
6
7
8
9
10
11
int i,j,k;
int n,m;
int ** matrix;
//....matrix being inputed
k=0;
for(i=0;i<n;i++) {
      j=0;
      while( matrix[i][j] && (++j < m ) );  /// looking throw the row number i
      if(j==m) k++; // if there were no zero elems increase counter.
};
///... output result
или
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int i,j,k;
int n,m;
int ** matrix;
//....matrix being inputed
k=n;// k is an answer. first we set it to number of strings
for(i=0;i<n;i++) {
      for(j=0;j<m;j++) if(!matrix[i][j] ) {
                  k--;// if we found a zero in the string
                  break;// it doesnt fit the condition,so we decrease k. and go looking at  
                            //next str
           };
};
//.. output result
Примечание : в первом варианте используется "ленивость" оператора "И" - &&.
Т.Е если первое условие не выполнено,то второе не проверяется.
Умница++
0 / 0 / 0
Регистрация: 23.12.2008
Сообщений: 13
26.12.2008, 11:40  [ТС]     Необходимо подсчитать количество строк матрицы, которые не содержат ни одного 0 элемента. #7
Пасибо большое, указателями пользоваться не стала, но правильно расставила скобочки и всё получилось :0)))

Не подскажите теперь как решить следующую половину этой задачки: "Найти в этой матрице максимальное число, которое встречается несколько раз"?

Как найти максимальное число, это понятно. Но оно не подойдет, если встертиться только один раз....
Lord_Voodoo
Супер-модератор
8584 / 2184 / 61
Регистрация: 07.03.2007
Сообщений: 10,868
Завершенные тесты: 1
26.12.2008, 11:43     Необходимо подсчитать количество строк матрицы, которые не содержат ни одного 0 элемента. #8
ну здесь тоже предлагаю самый простой способ, ищешь элемент, потом смотришь кол-во его вхождний в массив... если один в массив помешаешь... ну и потом уже ищешь максимальный элемент с учетом того, чтобы он не был из массива исключенных элементов...
Умница++
0 / 0 / 0
Регистрация: 23.12.2008
Сообщений: 13
09.01.2009, 23:55  [ТС]     Необходимо подсчитать количество строк матрицы, которые не содержат ни одного 0 элемента. #9
WooDooMan,
Вот я и вернулась к задачке :0)

Ищу элемент и смотрю количество вхождений следующим образом:

C++
1
2
3
4
5
6
7
k=0;
for(int i=0;i<n;i++)
{for(int j=0;j<m;j++)
              if (mas[i][j])== mas[i][j+1])
              {
              k=k+1;
              };
if k=0 then , то получается число встречается один раз, значит его нужно поместить в массив,вот здесь ужно создать какой-то одномерный безразмерный массив или как?
igor_nf
118 / 12 / 1
Регистрация: 21.08.2007
Сообщений: 222
10.01.2009, 12:51     Необходимо подсчитать количество строк матрицы, которые не содержат ни одного 0 элемента. #10
Фактически, если отсортировать матрицу - потом найти максимальный элемент - встречающийся более одного раза - тривиально. Но сложность тогда получается вроде O(n) = n * log(n), где n - число элементов матрицы.

Должен быть способ побыстрее (думается, что намного побыстрее..).
Умница++
0 / 0 / 0
Регистрация: 23.12.2008
Сообщений: 13
10.01.2009, 20:50  [ТС]     Необходимо подсчитать количество строк матрицы, которые не содержат ни одного 0 элемента. #11
черт, че-то никак не получается :'(, помогите плиииизззз

Добавлено через 4 минуты 20 секунд
Ой, а как еще можно переименовать тему:
"Найти в матрице максимальное число, которое встречается несколько раз", а то сейчас название темы не соответствует решаемой задаче.

Добавлено через 6 часов 4 минуты 41 секунду
Что-то молчат все сегодня

Хочу еще раз уточнить поставленную задачу и привести вариант решения:

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

Первая половина задачи решена, со второй проблемы.

Вот моё решение:

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
// Matrica.cpp : main project file.
 
#include "stdafx.h"
#include <iostream>
#include <stdio.h>
#include <cmath>
#include <time.h>
using namespace std;
void main()
{
//srand((unsigned)time(NULL));
//инициализация массива
const int n=5, m=6;
int p, max, i, j,el, max, ii, jj, m, k, s;
int mas[n][m], 
count={0};
//формируем массив...
for(int i=0;i<n;i++)
    for(int j=0;j<m;j++)
        mas[i][j]=rand()%15-5;
//...и выводим его на экран.
for(int i=0;i<n;i++)
    {cout<<"\n";
     for(int j=0;j<m;j++)
        cout<<mas[i][j]<<" ";
    };
 
//подсчет количества строк, не содержащих нулевых элементов
p=n;
for(int i=0;i<n;i++)
{ for(int j=0;j<m;j++)
 if (mas[i][j]==0)
              {
                 p--;
                 break;
              }; 
};
cout<<' '<<"\n";
cout<<' '<<"\n";
cout<<"Kol-vo strok, ne soderjashih ni odnogo nulevogo elementa =" <<p <<"\n";
 
// нахождение максимального элемента
max=mas[0][0];
for(int i=0;i<n;i++)
{for(int j=0;j<m;j++)
              if (max< mas[i][j])
              {
              max=mas[i][j];
              };
};
cout<<"Maximalniy element="<<max<<"\n";
 
//нахождение максимального элемента, встречающегося не менее 2-х раз
s=1;
k=1;
max=0;
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
{
    el=mas[i][j]
    for(int ii=0;ii<n;ii++)
    for(int jj=0;jj<m;jj++)
    { (el==mas[ii][jj]) && (s==1)
       {if (i!=ii) || (j!=jj)
           {max=el;
            k=k+1;
            s=2;
    };
    }
else
if (el==mas[ii][jj])&&(el > max)
{
    max=el;
};
    };
};
if (k!=0) cout << "Maximalniy element="<<max<<"\n";
else cout << "Maximalniy element net";
}[
Почему-то в 72 строке выдаёт ошибку связанную с ";", не пойму почему:
else
if (el==mas[ii][jj])&&(el > max)
{
max=el;
};
manfeese
129 / 128 / 16
Регистрация: 04.01.2009
Сообщений: 415
10.01.2009, 22:15     Необходимо подсчитать количество строк матрицы, которые не содержат ни одного 0 элемента. #12
В таком случае действительно удобнее упорядочить элементы матрицы, как было сказано ранее.
А затем работать не как с матрицей, а как с одномерным массивом (В таком случае мы ничего не выигрываем. Это только для удобства).

C++
1
2
3
4
5
6
for (int i=0; i<n*n-1; i++)
       if (A[i/n][i%n]==A[i/n][(i%n)+1])
       {
           cout << "maksimalnui element matricu" << A[j/n][j%n];
           break;
       }
Добавлено через 6 минут 22 секунды
Но этот цикл применим только для матрицы упорядоченной по убыванию. Иначе надо изменить условия цикла

Добавлено через 26 минут 14 секунд
Заметил ошибку в своем же коде

Код
if (A[i/n][i%n]==A[[COLOR="Red"](i+1)[/COLOR]/n][[COLOR="red"](i+1)[/COLOR]%n)
Умница++
0 / 0 / 0
Регистрация: 23.12.2008
Сообщений: 13
10.01.2009, 22:19  [ТС]     Необходимо подсчитать количество строк матрицы, которые не содержат ни одного 0 элемента. #13
manfeese,
т.е мне сейчас надо упорядочить матрицу по убыванию и применить этот код.
Тогда должно получится?
manfeese
129 / 128 / 16
Регистрация: 04.01.2009
Сообщений: 415
10.01.2009, 22:39     Необходимо подсчитать количество строк матрицы, которые не содержат ни одного 0 элемента. #14
Да, вполне, только опять же, в конце моего кода не хватает квадратной скобки ]

А упорядочивать матрицу, я бы советовал тоже используя такую структуру "прогонки" массива.

Добавлено через 2 минуты 40 секунд
перепишу код заново и без ошибок!

C++
1
2
3
4
5
6
for (int i=0; i<n*n-1; i++)   
       if (A[i/n][i%n]==A[(i+1)/n][(i+1)%n])   
       {   
           cout << "maksimalnui element matricu" << A[i/n][i%n];   
           break;   
       }
Добавлено через 3 минуты 16 секунд
Цитата Сообщение от Умница++ Посмотреть сообщение
Почему-то в 72 строке выдаёт ошибку
Код
if [COLOR="red"]([/COLOR](el==mas[ii][jj])&&(el > max)[COLOR="Red"]) [/COLOR]
не хватало скобок
Умница++
0 / 0 / 0
Регистрация: 23.12.2008
Сообщений: 13
10.01.2009, 22:39  [ТС]     Необходимо подсчитать количество строк матрицы, которые не содержат ни одного 0 элемента. #15

Уважаемый manfeese, может поможете мне тогда уж до конца.
Я же знаю, что вы умный и знаете как быстро упорядочить матрицу.
А то я тут всю ночь буду мучаться, а так спать хочется
manfeese
129 / 128 / 16
Регистрация: 04.01.2009
Сообщений: 415
10.01.2009, 22:44     Необходимо подсчитать количество строк матрицы, которые не содержат ни одного 0 элемента. #16
самый простой метод, который используется большинством программистов

C++
1
2
3
4
5
6
7
8
    for (int i=0; i<n*n; i++)
       for (int j=0; j<n*n-1-i; j++)
          if (A[j/n][j%n]<A[(j+1)/n][(j+1)%n])
          {
           int temp = A[j/n][j%n];
           A[j/n][j%n] = A[(j+1)/n][(j+1)%n]]
           A[(j+1)/n][(j+1)%n]=temp;
          }
Умница++
0 / 0 / 0
Регистрация: 23.12.2008
Сообщений: 13
10.01.2009, 23:18  [ТС]     Необходимо подсчитать количество строк матрицы, которые не содержат ни одного 0 элемента. #17
manfeese,
Че-то не получается:

Вот что получилось:

6 -3 -1 5 9 -1
-2 -2 2 9 0 0
-4 7 -4 6 5 -3
7 1 1 4 -3 -2
2 2 1 6 3 0

Количество строк не содержащих нулевого элемента =3

9 9 7 7 6 -1
6 6 5 5 4 0
3 2 2 2 1 -3
1 1 0 -1 -2 -2
-2 -3 -3 -4 -4 0

Максимальный элемент = 9

неправильно получается

Добавлено через 5 минут 4 секунды
Вот полный код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
for (int i=0; i<n*n; i++)   
   for (int j=0; j<n*n-1-i; j++)   
      if (mas[j/n][j%n]<mas[(j+1)/n][(j+1)%n])   
      {   
       int temp = mas[j/n][j%n];   
       mas[j/n][j%n] = mas[(j+1)/n][(j+1)%n];  
       mas[(j+1)/n][(j+1)%n]=temp;
      };
for(int i=0;i<n;i++)
    {cout<<"\n";
     for(int j=0;j<m;j++)
        cout<<mas[i][j]<<" ";
    };
 cout<<"\n";
 
for (int i=0; i<n*n-1; i++)      
       if (mas[i/n][i%n]==mas[(i+1)/n][(i+1)%n])      
       {      
           cout << "maksimalnui element matricu= " << mas[i/n][i%n];      
           break;      
       } ;
 cout<<"\n";
manfeese
129 / 128 / 16
Регистрация: 04.01.2009
Сообщений: 415
11.01.2009, 02:21     Необходимо подсчитать количество строк матрицы, которые не содержат ни одного 0 элемента. #18
Ну во первых, 9 по идее это правильно. Ведь надо найти максимальный элемент, который повторяется несколько раз. 9 - максимальный и плвторяется два раза. значит он подходит по этому параметру.
А если не сортирует правильно, так это ж я привел код в общем случае, я же не знаю какого размера у тебя матрица, поэтому условно взял ее размеры n*n (квадратная). А ты походу в тексте этого не изменила.

Вот полный

Добавлено через 1 минуту 41 секунду
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
 #include <conio.h>
#include <iostream.h>
 
int main()
{
    const n=5,m=6;
    int A[n][m] = { {6,-3,-1,5,9,-1},
                    {-2,-2,2,9,0,0},
                    {-4,7,-4,6,-5,3},
                    {7,1,1,4,-3,2},
                    {2,2,1,6,3,0}   };
    // заполнение матрицы
 /* for (int i=0; i<n; i++)
        for (int j=0; j<m; j++)
           {
               cout<<"A["<<i<<","<<j<<"]=";
               cin >> A [i][j];
           }
   */   // Подсчет ненулевых строк
    int k=n;
    for (int i=0; i<n; i++)
      for (int j=0; j<m; j++)
         if (A[i][j]==0) { k--; break;}
 
    cout << "kolichestvo strok ne soderzhawih nulevogo elementa = " << k;
    // Упорядочивание матрицы по убыванию
    for (int i=0; i<n*m; i++)
       for (int j=0; j<n*m-1-i; j++)
          if (A[j/m][j%m]<A[(j+1)/m][(j+1)%m])
          {
           int temp = A[j/m][j%m];
           A[j/m][j%m] = A[(j+1)/m][(j+1)%m];
           A[(j+1)/m][(j+1)%m]=temp;
          }
     // Поиск максимальных элементов
     cout << "\nmaksimalnui element matricu = ";
     k=0;
     for (int i=0; i<n*n; i++)
       if (A[i/n][i%n]==A[(i+1)/n][(i+1)%n])
       {
           k=A[i/n][i%n];
           break;
       }
     cout << k << "\n";
 
    for (int i=0; i<n; i++){
      for (int j=0; j<m; j++)
         cout << A[i][j] << " ";
      cout << "\n";
      }
    getch();
    return 0;
 }
По умолчанию матрица уже задана
accept
4821 / 3241 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
11.01.2009, 02:48     Необходимо подсчитать количество строк матрицы, которые не содержат ни одного 0 элемента. #19
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
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
 
#include <stdio.h>
#include <stdlib.h>
 
#define MTXMIN  2   /* минимальное количество строк и столбцов матрицы  */
#define MTXMAX  5   /* максимальное количество строк и столбцов матрицы */
 
int **mtxcreat(int, int);
int **mtxfill(int **, int, int, FILE *);
/* int **mtxprint(int **, int, int, FILE *); */ /* покажет матрицу */
void mtxfree(int **, int);
 
int *veccreat(int);
/* int *vecprint(int *, int, FILE *); */ /* покажет вектор */
void vecfree(int *);
 
int *bubble(int *, int, int);
 
/* запрашивает матрицу и выводит её больший повторяющийся элемент */
main()
{
    int **m, *v, *vp;
    int i, j, nelems, maxrep;
    int nrows, ncells;
    
    printf("How many rows? ");
    if (scanf("%d", &nrows) != 1)
        return 1;
    printf("How many cells in row? ");
    if (scanf("%d", &ncells) != 1)
        return 1;
    if (nrows < MTXMIN
     || ncells < MTXMIN 
     || nrows > MTXMAX 
     || ncells > MTXMAX)
        return 2;   /* если матрица выходит за установленные пределы */
    if ((m = mtxcreat(nrows, ncells)) == NULL)
        return 3;
    printf("Enter matrix [ %d rows x %d cells ]:\n",
        nrows, ncells);
    if ((m = mtxfill(m, nrows, ncells, stdin)) == NULL) {
        mtxfree(m, nrows); /* освободить память из под матрицы */
        return 4;   /* если в матрицу вводятся не числа */
    }    
    /* mtxprint(m, nrows, ncells, stdout); */ /* покажет матрицу */
    if ((vp = v = veccreat((nelems = nrows*ncells))) == NULL) {
        mtxfree(m, nrows); /* освободить память из под матрицы */
        return 5;
    }    
    for (i = 0; i < nrows; i++)   /* перенос элементов матрицы в вектор */
        for (j = 0; j < ncells; j++)
            *vp++ = m[i][j];
    bubble(v, 0, nelems-1);   /* сортировка элементов вектора */
    /* vecprint(v, nrows*ncells, stdout); */ /* покажет вектор всех элементов */
    for (vp = v+nelems-1, maxrep = 0; vp != v; vp--) /* поиск первого повтора */
        if (*vp == *(vp-1)) {
            maxrep = *vp;
            break;
        }    
    printf("%d\n", maxrep);
    vecfree(v);   /* освободить память из под вектора */
    mtxfree(m, nrows); /* освободить память из под матрицы */
    return 0;
}
 
/* mtxcreat:  создаёт матрицу [ m x n ] */
int **mtxcreat(int m, int n)
{
    int **mtx, i;
    
    if ((mtx = (int **) calloc(m, sizeof(int *))) == NULL)
        return NULL;
    for (i = 0; i < m; i++)
        if ((mtx[i] = (int *) calloc(n, sizeof(int))) == NULL) {
            while (--i >= 0)
                free((void *) mtx[i]);
            free((void **) mtx);
            return NULL;
        }
    return mtx;    
}
 
/* mtxfill:  заполняет матрицу mtx [ m x n ] данными из файла ifp */
int **mtxfill(int **mtx, int m, int n, FILE *ifp)
{
    int i, j;
    
    for (i = 0; i < m; i++)
        for (j = 0; j < n; j++) {
            if (fscanf(ifp, "%d", &mtx[i][j]) != 1)
                return NULL;
        }
    return ferror(ifp) ? NULL : mtx;
}
 
/* mtxfree:  удаляет матрицу mtx на m строк из памяти */
void mtxfree(int **mtx, int m)
{
    int i;
    
    for (i = 0; mtx != NULL && i < m; i++)
        free((void *) mtx[i]);
    free((void **) mtx);
}
 
/* veccreat:  создаёт вектор длины n */ 
int *veccreat(int n)
{
    return (int *) calloc(n, sizeof(int));
}
 
/* vecfree:  удаляет вектор v из памяти */ 
void vecfree(int *v)
{
    free((void *) v);
}
 
/* bubble:  сортировка пузырьковым методом */
int *bubble(int *a, int m, int n)
{
    char is = 1;
    int i, c;
    
    while (is) {
        is = 0;
        for (i = m+1; i <= n; i++)
            if (a[i] < a[i-1]) {
                c = a[i];
                a[i] = a[i-1];
                a[i-1] = c;
                is = 1;
            }
    }
    return a;
}
 
/* необязательные элементы, которые можно удалить */
 
/* покажет матрицу */
 
/* mtxprint:  выводит матрицу mtx [ m x n ] в файл ofp */
int **mtxprint(int **mtx, int m, int n, FILE *ofp)
{
    int i, j;
    
    for (i = 0; i < m; i++)
        if (mtx[i] != NULL)
            for (j = 0; j < n; j++)
                fprintf(ofp, "%3d%s",
                    mtx[i][j], (j == n-1 ? "\n" : ""));
    return ferror(ofp) ? NULL : mtx;
}
 
/* покажет вектор */
 
/* vecprint: выводит вектор v длины n в файл ofp */ 
int *vecprint(int *v, int n, FILE *ofp)
{
    while (n--)
        fprintf(ofp, " %d%s",
            *v++, (n == 0 ? "\n" : ""));
    return ferror(ofp) ? NULL : v;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.01.2009, 11:56     Необходимо подсчитать количество строк матрицы, которые не содержат ни одного 0 элемента.
Еще ссылки по теме:

Определить количество строк матрицы, не содержащих ни одного нулевого элемента - C++
Ввести с клавиатуры вещественную матрицу размерностью 5х5. Определить количество строк, не содержащих ни одного нулевого элемента. ...

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
Умница++
0 / 0 / 0
Регистрация: 23.12.2008
Сообщений: 13
12.01.2009, 11:56  [ТС]     Необходимо подсчитать количество строк матрицы, которые не содержат ни одного 0 элемента. #20
Большое всем спасибо за помощь в решении задачки, особенное дякую
Yandex
Объявления
12.01.2009, 11:56     Необходимо подсчитать количество строк матрицы, которые не содержат ни одного 0 элемента.
Ответ Создать тему
Опции темы

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