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

Уплотнить заданную матрицу, удаляя из нее строки и столбцы, заполненные нулями - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как поменять шрифт http://www.cyberforum.ru/cpp-beginners/thread174658.html
Как поменять размер шрифта в С? Добавлено через 17 минут Это вообще возможно???
C++ Лишние строки после выводы Доброе время суток! У меня следующий вопрос: когда я скомпилировал программу и компьютер начинает ее выполнять, то после последних данных еще берется непонятно откуда куча ненужных строк. Как их убрать? http://www.cyberforum.ru/cpp-beginners/thread174645.html
C++ Определить и выдать сумму ряда.
Вычислить с точностью е (е>0) и е=0.0001 для действительного х (х отличен от 0) сумму ряда Определить и выдать сумму ряда,количество членов последовательности,значение последнего члена Реализовать диалог. Помогите пожалуйста О_о
Количество использованных функций C++
Задание:"В программе на Си подсчитать количество использованных функций" Помогите пожалуйста кто знает со структурой ,как сделать чтоб он прогу открыл и посчитал
C++ Учебник для новичка по с++? http://www.cyberforum.ru/cpp-beginners/thread174628.html
Извините возможно за очередную тему с этим вопросом... но я не как не могу найти в нете книгу для меня... везде идет разговор совершенно не о том, что мне нужно... Подскажите пожалуйста книгу по C++ все равно для какой среды... для билдера с++ или вижуал с++ лиж бы там был пример программы и как ее сделать при этом с пояснением ее кода. Что бы все как для детей... "Это ваша первая программа",...
C++ Подключение клавиатуры в С/С++ Ктото знает как в Си использовать клавиши: Пробел, Enter, Esc и те которые не печатаются? подробнее

Показать сообщение отдельно
dihlofos
Бродяга
303 / 257 / 17
Регистрация: 27.08.2010
Сообщений: 553
11.10.2010, 09:30     Уплотнить заданную матрицу, удаляя из нее строки и столбцы, заполненные нулями
Предлагаю такой вариант проги для уплотнения:
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
#include <iostream.h>
 
const int ROWS=5;
const int COLS=5;
int a[ROWS][COLS] = { 
                {0,4,5,6,0},
        {0,0,0,0,0},
        {0,6,7,8,0},
        {0,4,8,6,0},
        {0,0,0,0,0},
        };
 
void deleteRow(int n, int m, int row)
{
    int i,j;
    cout<<"Udalena stroka: "<<row<<endl;
    for(i=row; i<n-1; i++)
    {
       for(j=0; j<m; j++)
       {
            a[i][j]=a[i+1][j];
       }
    }
}
 
void deleteCol(int n, int m, int col)
{
    int i,j;
    cout<<"Udalen stolb: "<<col<<endl;
    for(j=col; j<m-1; j++)
    {
       for(i=0; i<n; i++)
       {
            a[i][j]=a[i][j+1];
       }
    }
}
 
void printArray(int n, int m)
{
    int i,j;
    for(i=0; i<n; i++)
    {
       for(j=0; j<m; j++)
            cout<<a[i][j]<<'\t';
       cout<<endl;
    }
    cout<<endl;
}
 
int main()
{
    int i,j,m=COLS,n=ROWS;
    bool isNull;
 
    cout<<"Ishodnyj: "<<endl;
    printArray(n,m);
 
    for(i=0; i<n; i++)  // Удаление строк
    {
       isNull=true;
       for(j=0; j<m; j++)
       {
            if (a[i][j]!=0)
            {
                isNull=false;
                break;
            }
       }
       if(isNull)
       {
            deleteRow(n,m,i);
            n--;
                        i--;
            printArray(n,m);
       }
    }
 
 
    for(j=0; j<m; j++)  // Удаление столбцов
    {
       isNull=true;
       for(i=0; i<n; i++)
       {
            if (a[i][j]!=0)
            {
                isNull=false;
                break;
            }
       }
       if(isNull)
       {
            deleteCol(n,m,j);
            m--;
                        j--;
            printArray(n,m);
       }
    }
 
    cout<<endl;
    system("pause");
    return 0;
}
Если задание понял правильно, то всё делает правильно.

Добавлено через 13 минут
Вторая задача:
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
#include <iostream.h>
int main()
{
    const int ROWS=5;
    const int COLS=6;
    int i,j;
    bool find=false;
    int a[ROWS][COLS] = {
            {0,0,0,0,0,0},
            {0,0,0,0,0,0},
            {0,0,3,0,0,0},
            {0,0,0,4,0,0},
            {0,0,4,0,0,0},
            };
 
 
    for(i=0; i<ROWS; i++)
    {
        for(j=0; j<COLS; j++)
        {
            if(a[i][j]>0)
            {
                find = true;
                break;
            }
        }
        if(find)
            break;
    }
 
    if(find)
        cout<<"Number of row = "<<i;
    else
        cout<<"No positive elements";
 
    cout<<endl;
    system("pause");
    return 0;
}
 
Текущее время: 02:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru