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

Удаление нулевой(-ых) строчки и столбца из матрицы - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Оператор xor http://www.cyberforum.ru/cpp-beginners/thread629687.html
Всем добрый вечер.Чем отличаются следующие выражения: (a || b) && !(a && b); и (a^b);
C++ Лафоре задача по классам Задача из книги лафоре по классам №7: нужно написать программу используя классы для ввода и вывода координат, кроме того нужно написать конструктор который будет принимать 3 аргумента и написать... http://www.cyberforum.ru/cpp-beginners/thread629686.html
C++ Не удается найти ошибку
Линкер ругается (2001) на не разрешенный внешний символ, гуглил но не втыкнул из-за чего конкретно он выдает эту ошибку.Вот код: //заголовок #ifndef SAVINGSACCOUNT_H #define SAVINGSACCOUNT_H ...
Таймеры C++
Здравствуйте, скажите какие есть готовые таймеры? Пользовался поиском, нашел только winapi и простую библиотеку time.h, только почему то используя функцию clock() у меня выводится результат = 0...
C++ Применение http://www.cyberforum.ru/cpp-beginners/thread629640.html
Возможно вы посчитаете данный вопрос глупым. Но я его задам. Где можно применять C++ и C программисту, при этом не используя GUI? И возможно-ли потом к определенной программе без GUI прикрутить...
C++ Автоматическое выведение типа У С. Прата встретил вот такой непонятный код const double *f2(const double arr, int n) { return arr; } int main() { auto p2 = f2; // Автоматическое выведение типа С++11 подробнее

Показать сообщение отдельно
Thinker
Эксперт С++
4226 / 2200 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
27.07.2012, 22:22
Удаление всех нулевых строк без единого цикла. Аналогично можно и для столбцов сделать.
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
#include<stdio.h>
#include<time.h>
#define M 3
#define N 5
 
void Init(int *a, int *end)
{
   if (a < end)
   {
       *a = rand() % 100;
       Init(a + 1, end);
   }
}
 
void Print(int *a, int i, int *end)
{
   if (a < end)
   {
       printf("%d%c", *a, i%N ? ' ' : '\n');
       Print(a + 1, i + 1, end);
   }
}
 
int Check(int *a, int *end)
{
   return a < end ? (*a == 0 && Check(a + 1, end)) : 1;
}
 
void DellRows(int *a, int *end)
{
    if(a + N < end)
    {
        *a = *(a + N);
        DellRows(a + 1, end);
    }
}
 
 
void Dell(int *a, int *end, int *m)
{
   if (a < end)
   {
       if (Check(a, a + N))
       {
          DellRows(a, end);
          (*m)--;
          end -= N;
       }
       else ++a;
       Dell(a, end, m);
   }
}
 
int main()
{
   int m = M, a[M][N];
   srand(time(NULL));
   Init(*a, *a + M*N);
   Print(*a, 1, *a + M*N);
   Dell(*a, *a + M*N, &m);
   puts("\n");
   Print(*a, 1, *a + m*N);
   return 0;
}
2
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru