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

Уплотнить матрицу - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Использование строк.Использование структур http://www.cyberforum.ru/cpp-beginners/thread705153.html
Задачка: Дана строка,состоящая из групп нулей и едениц. Найти и вывести на экран группы с нечетным количеством символов. И еще одна: В справочной автовокзала хранится расписание движения автобусов. Для каждого рейса указаны его номер, тип автобуса, пункт назначения, время отправления и прибытия. Вывести информацию о рейсах, которыми можно воспользоваться для прибытия в пункт назначения раньше...
C++ Visual C++ 2012 Ultimate Доброго времени суток. Скачал сегодня Вижуал с++ 2012. Разъясните по хардкору, как в нем работать, а то до этого в билдере работал. Для начала, что не так в этой программе ? http://www.cyberforum.ru/cpp-beginners/thread705152.html
С++, MFC, разделение строки типа CString на слова C++
Есть три списка ListBox и одно поле редактирования EditBox. В EditBox вводится информация в формате «Фамилия Имя Отчество». По завершении ввода фамилия должна появиться в списке «Фамилия», имя в списке «Имя», отчество в списке «Отчество».... Проблема в том, что я не знаю, как разделить строку из поля редактирования на слова... функция strtok() работает только с типом char
Проблемы с задачей! (вывести на экран квадрат Пифагора - таблицу умножения) C++
Помогите с задачей! Надо: 1)Обязательно цыкл for. 2)Cout/cin должны быть. 3)И подробно обьясните что к чему... Цыклы очень тяжко даються... Задача: Написать програму, которая выводить на экран квадрат Пифагора - таблицу умножения. P.s.Желательно ответить побыстрее!
C++ _getch() не дожидается реакции от пользователя http://www.cyberforum.ru/cpp-beginners/thread705119.html
Есть такой код, который что-то делает пока не будет нажат <ENTER>. key = _getch(); if(key!=13) do { }while((key=_getch())!=13); Но если во время работы программы, до этого места, несколько раз нажать <ENTER> - то этот кусок срабатывает сам не дожидаясь, пока на него отреагирует пользователь. Каким образом можно определить было ли нажато что-либо раннее и как это все...
C++ Вычислить сумму элементов, образующих символ в двумерном массиве 1. Задана матрица чисел: c Вычислить сумму элементов, образующих символ --*--------- *-- ----*----- *---- ------*--*------ --**********-- -----* --*------- ----* ----*------ --*-------- *---- подробнее

Показать сообщение отдельно
r.e.a.c.t.o.r
0 / 0 / 0
Регистрация: 16.05.2009
Сообщений: 43
22.11.2012, 02:40     Уплотнить матрицу
Доброго всем времени суток. Хотелось бы разобраться с одним вопросом.

Задание звучит так
Дана целочисленная прямоугольная матрица:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
m = {{ -16, -78,   0,  -6, -29, -19,  0, -65, -88, -51},
 
     { -79, -22,  0, -25, -62, -69,  0, -59, -75, -89},
 
     { -87, -95,  0, -85, -49, -75,  0, -73, -59, -52},
 
     {   0,   0,  0,   0,   0,   0,  0,   0,   0,   0},
 
     { -99, -21,  0,  64,  22,  -2,  0, -84,  -1, -71},
 
     { -25,  47,  0,  43,  15, -44,  0,  61,   4,  74},
 
     {  88, -61,  0, -64, -83,  97,  0,  90,  15,   8},
 
     {   0,   0,  0,   0,   0,   0,  0,   0,   0,   0},
 
     {  98,  58,  0, -29,  95,  62,  0,  89,  36, -32},
 
     {  78,  60,  0, -18,  30, -13,  0, -92,   1, -38}}

1) Найти номер первой из строк, содержащих хотя бы один положительный элемент (>0).

2) Уплотнить заданную матрицу, удаляя из нее строки и столбцы, заполненные нулями (оставшееся место справа и снизу заполнить нулями).


Сделал пункт 1. А в пункте 2 нужно по сути сместить нулевые строки и столбцы соответственно вниз и вправо. Как сместить конкретную строчку или столбец понял, но нужно сделать цикл или пару циклов, чтобы не указывать конкретно, а, чтобы проверялось: если строка или столбец из нулей, тогда сместить их. Помогите пожалуйста с этим. Вот код того что уже есть:

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
#include <iostream>
#include <math.h>
using namespace std;
void main ()
{
    const int size=10,column=10,row=10;
    int  a=0,b=0,i,j, f,n=0,
    mas[column][row]=
    {{ -16, -78,   0,  -6, -29, -19,  0, -65, -88, -51},
 
     { -79, -22,  0, -25, -62, -69,  0, -59, -75, -89},
 
     { -87, -95,  0, -85, -49, -75,  0, -73, -59, -52},
 
     {   0,   0,  0,   0,   0,   0,  0,   0,   0,   0},
 
     { -99, -21,  0,  64,  22,  -2,  0, -84,  -1, -71},
 
     { -25,  47,  0,  43,  15, -44,  0,  61,   4,  74},
 
     {  88, -61,  0, -64, -83,  97,  0,  90,  15,   8},
 
     {   0,   0,  0,   0,   0,   0,  0,   0,   0,   0},
 
     {  98,  58,  0, -29,  95,  62,  0,  89,  36, -32},
 
     {  78,  60,  0, -18,  30, -13,  0, -92,   1, -38}};
    for ( i=0;i<column;i++)
    {
    for ( j=0;j<row;j++)
    
        if (mas[i][j]>0)
        {
            cout<<"pervaia strochka s polozhitelnim elementom:"<<i<<endl;
                goto m1;}
 
    }
m1:
    cout<<"-------------"<<endl;
 
 
double temp;
 
int j2;
int j1=2;
j2=j1;
 
 
while (j2<9)
{
    for ( i=0;i<10;i++)
    {
        temp=mas[i][j2];
        mas[i][j2]=mas[i][j2+1];
        mas[i][j2+1]=temp;
    }
    j2++;
 
}
 
 
 
    for ( i=0;i<column;i++)
    {
    for ( j=0;j<row;j++)
        printf("%7d",mas[i][j]);    
 
 cout << endl << endl;
    }
 
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 00:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru