Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.10.2014, 12:40   #1
vladis222
Пользователь
 
Регистрация: 26.09.2011
Сообщений: 24
По умолчанию Нулевые строки матрицы

Здравствуйте,есть такая задача -из трех целочисленных квадратных матриц найти ту,у которой больше нулевых строк, я объявляю три матрицы и инициализирую их значениями,специально с нулевыми строками,а вот как сделать проверку по циклам на количество нулевых строк в матрице, чтобы если все элементы в строке равны нулю,увеличить счетчик? Подскажите,пожалуйста?
Код:
#include<iostream>
using namespace std;
#include<conio.h>
#include<stdlib.h>
const int N=3;
const int M=3;
int main()
{
	setlocale(LC_ALL,"RUS");
	cout<<"Первая матрица :";
	cout<<endl;
    int matrix1[N][M]={{1,2,3},{0,0,0},{7,8,9}};
	int matrix2[N][M]={{1,2,3},{0,0,0},{0,0,0}};
	int matrix3[N][M]={{0,0,0},{0,0,0},{0,0,0}};
	int col1=0;
	int col2=0;
	int col3=0;
	for(int i=0;i<N;i++)
	{
		for(int j=0;j<M;j++)
		
		cout<<matrix1[i][j]<<" ";
		cout<<endl;
	}
	
	cout<<"Вторая матрица :";
	cout<<endl;
	for(int i=0;i<N;i++)
	{
		for(int j=0;j<M;j++)
		
		cout<<matrix2[i][j]<<" ";
		cout<<endl;
	}
	
	cout<<"Третья матрица :";
	cout<<endl;
	for(int i=0;i<N;i++)
	{
		for(int j=0;j<M;j++)
		
		cout<<matrix3[i][j]<<" ";
		cout<<endl;
	}
	cout<<endl;
			getch();

}
vladis222 вне форума Ответить с цитированием
Старый 29.10.2014, 00:17   #2
studentus1985
Пользователь
 
Регистрация: 21.10.2014
Сообщений: 25
По умолчанию

Вот можно как то так, но этот код можно еще оптимизировать
Код:
int k;//счетчик нулевых элементов в строке
int c=0; //счетчик нулевых строк
for (int j=0; j<M; j++){
    k=0;
    for (int i=0; i<N; i++){
        if (matrix[i][j]==0) k++;
        else  break;
       
    }
      if (k==N) c++;
}
cout<< "В этой матрице "<<c<<" нулевых строк";

Последний раз редактировалось studentus1985; 29.10.2014 в 00:54.
studentus1985 вне форума Ответить с цитированием
Старый 29.10.2014, 07:46   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

В качестве идеи:
Код:
#include<iostream>
using namespace std;
#include<conio.h>
#include<stdlib.h>
const int N=3;
const int M=3;
    int matrix[3][N][M]=
      {{{1,2,3},{0,0,0},{7,8,9}},
	{{1,2,3},{0,0,0},{0,0,0}},
	{{0,0,0},{0,0,0},{0,0,0}}}

int zerofate(int i){
 int k=0;
 for(int j=0;j<N;j++) {
   bool b=true;
   for(int l=0;l<M;l++) if(!matrix[i][j][l]){b=false; break;}
   k+=(b)?1:0;
 }
 return k;
}

int main()
{
	setlocale(LC_ALL,"RUS");
	cout<<"Первая матрица :";
	cout<<endl;
	int q=zerofate(0),w=zerofate(1),e=zerofate(2);

        if(q>w && q>e) первая матрица else
        if(w>q && w>e) вторая матрица else
        if(e>q && e>w) третья матрица 

			getch();

}
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нулевые строки и столбцы в матрице Toffin Помощь студентам 1 17.07.2014 17:03
В каждом столбце матрицы D[n,m] нулевые элементы переставить в начало столбца pitak Помощь студентам 10 29.12.2013 11:27
нулевые элементы матрицы vladizp Помощь студентам 4 28.06.2011 22:27
Нулевые строки в таблице. Karl_Karlovi4 БД в Delphi 2 19.04.2011 16:09
не ищет нулевые строки в файле C-Jay Общие вопросы C/C++ 4 02.01.2010 19:28