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

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

Восстановить пароль Регистрация
 
Рома123
3 / 3 / 0
Регистрация: 18.05.2010
Сообщений: 140
29.05.2010, 14:54     Количество строк матрицы, в которых есть хотя бы один нулевой элемент #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
#include <iostream>
#include <cmath>
int main()
{
const int n = 6;
int matr[n][n];
int temp[n];
int i = 0, j = 0, k = 0;
std::cout<<"Введите матрицу:"<<std::endl;
for(i ^= i; i < n; ++i)
for(j ^= j; j < n; ++j)
std::cin>>matr[i][j];
for(j ^= j; j < n; ++j)
{
temp[j] = 0;
for(i ^= i; i < n; ++i)
if(matr[i][j] & 1 && matr[i][j] < 0)
temp[j] += -matr[i][j]
}
for(j ^= j; j < n - 1; ++j)
for(k ^= k; k < n - j - 1; ++k)
if(temp[j] > temp[j + 1])
{
temp[j] ^= temp[j + 1] ^= temp[j] ^= temp[j + 1];
for(i ^= i; i < n; ++i)
matr[i][j] ^= matr[i][j + 1] ^= matr[i][j] ^= matr[i][j + 1];
}
 
std::cout<<"Матрица:"<<std::endl;
for(i ^= i; i < n; ++i, std::cout<<std::endl)
for(j ^= j; j < n; ++j)
std::cout<<matr[i][j]<<' ';
 
system("pause");
return EXIT_SUCCESS;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.05.2010, 14:54     Количество строк матрицы, в которых есть хотя бы один нулевой элемент
Посмотрите здесь:

C++ Определить количество столбцов матрицы, содержащих хотя бы один нулевой элемент
C++ Определить количество строк, содержащих хотя бы один нулевой элемент
Найти количество отрицательных элементов строк, которые содержат хотя бы один нулевой элемент C++
C++ Определить количество строк матрицы, содержащих хотя бы один нулевой элемент
Определить количество строк матрицы, содержащих хотя бы один нулевой элемент. C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
29.05.2010, 15:31     Количество строк матрицы, в которых есть хотя бы один нулевой элемент #2
Цитата Сообщение от Рома123 Посмотреть сообщение
for(i ^= i;
Это кто Вас такому выпендрёжу научил? Оно, конечно, не то, чтобы не правильно, чуднО просто...
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
#include <iostream>
#include <algorithm>
#include <iterator>
 
int main(){
    int rows, columns, **matrix;
    std::cout << "Rows: ";
    std::cin >> rows;
    std::cout << "Columns: ";
    std::cin >> columns;
    
    matrix = new int* [ rows ];
    for ( int i = 0; i < rows; ++i )
        matrix[i] = new int [ columns ];
    std::cout << "Matrix:" << std::endl;
    for ( int i = 0; i < rows; ++i ){
        for ( int j = 0; j < columns; ++j ){
            std::cout << "[" << i << "][" << j << "] = ";
            std::cin >> matrix[i][j];
        }
    }
    
    std::cout << std::endl;
    for ( int i = 0; i < rows; ++i ){
        std::copy(matrix[i], matrix[i] + columns, std::ostream_iterator<int>(std::cout, " "));
        std::cout << std::endl;
    }
    
    int cnt = 0;
    for ( int i = 0; i < rows; ++i )
        if ( std::count(matrix[i], matrix[i] + columns, 0) )
            ++cnt;
    
    std::cout << cnt << " rows have zero value elements." << std::endl;
    
    for ( int i = 0; i < rows; ++i )
        delete [] matrix[i];
    delete [] matrix;
    
    return 0;
}
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
29.05.2010, 16:14     Количество строк матрицы, в которых есть хотя бы один нулевой элемент #3


Рома123,
C++
1
2
3
4
5
6
7
8
9
int zcount = 0;
for(i ^= i; i < n; ++i)
    for(j ^= j; j < n; ++j)
        if(!matr[i][j])
        {
            ++zcount;
            break;
        }
std::cout<<"Количество строк с нулевыми элементами: "<<zcount<<std::endl;
kazak
29.05.2010, 16:21
  #4

Не по теме:

M128K145, с таким фанатизмом к скорости надо на ассемблер переходить

easybudda
29.05.2010, 16:24
  #5

Не по теме:

Цитата Сообщение от M128K145 Посмотреть сообщение
ну кто же еще?
Ну понятно... Ещё можно
C++
1
for ( i = ! 1;...
Или совсем марсианский вариант
C++
1
for ( i = ~(-1);...

Рома123
3 / 3 / 0
Регистрация: 18.05.2010
Сообщений: 140
29.05.2010, 16:57  [ТС]     Количество строк матрицы, в которых есть хотя бы один нулевой элемент #6
спасибо большое
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4237 / 2770 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
29.05.2010, 17:30     Количество строк матрицы, в которых есть хотя бы один нулевой элемент #7
Цитата Сообщение от easybudda Посмотреть сообщение

Не по теме:


Ну понятно... Ещё можно

C++
1
for ( i = ! 1;...
Или совсем марсианский вариант
C++
1
for ( i = ~(-1);...

только в этом нет смысла, т.к. команда присваивания выполняется дольше, чем логическая операция, поэтому в (i^=i; ) есть смысл, а вышецитируемое просто для смеха.

Добавлено через 4 минуты
Хотя сейчас посмотрел по тактам, наверное зависит от компилятора, смотря как он в асм это переведет.

Добавлено через 17 минут
не, xor быстрее mov.
...извеняюсь за флуд не по теме...)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.05.2010, 19:40     Количество строк матрицы, в которых есть хотя бы один нулевой элемент
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
kazak
29.05.2010, 19:40     Количество строк матрицы, в которых есть хотя бы один нулевой элемент
  #8

Не по теме:

Кстати насчет самого быстрого обнуления
Unit.cpp.80: i ^= i;

Assembler
1
2
0040222D mov edx, [ebp-0x08]
00402230 xor [ebp-0x08], edx
Unit.cpp.81: i = 0;
Assembler
1
2
00402233 xor ecx, ecx
00402235 mov [ebp-0x08], ecx
Если память не изменяет, все потому, что процессор не поддерживает ариф. и лог. операции <память><память>

Yandex
Объявления
29.05.2010, 19:40     Количество строк матрицы, в которых есть хотя бы один нулевой элемент
Ответ Создать тему
Опции темы

Текущее время: 11:09. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru