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

Уплотнение матрицы - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Поменять местами первое и последнее слово в строке http://www.cyberforum.ru/cpp-beginners/thread688632.html
задача: поменять местами первое и последнее слово в строке. проблема некорректно определяется конец первого слова. код: /*В строке поменяйте местами первое и последнее слова. Слова разделяются группами пробелов, пробелы возможны в начале и в конце строки.*/ char* swap(char* str) { int fb = 0; //начало первого слова
C++ DevC++, возможно ли подключить русификатор? В Dev c++ возможно подключить русификатор? http://www.cyberforum.ru/cpp-beginners/thread688631.html
C++ Строку в нижний регистр
вводится русская строка (слово ) кодировка 1251, необходимо привести ее к нижнему регистру #include <ctype.h> #include <locale.h> #include <string> #include <iostream> #include <algorithm> int main (){
Создание даты и времени C++
Доброго времени суток! Необходимо в программе выводить данные о текущей дате и времени, однако столкнулся с проблемой: мне нужны только часы и минуты для времени и число/месяц для даты. Что имеется сейчас: void __fastcall TForm1::Timer1Timer(TObject *Sender) { Label1->Caption=Now().TimeString(); } void __fastcall TForm1::Timer2Timer(TObject *Sender) {
C++ Обратный корень http://www.cyberforum.ru/cpp-beginners/thread688580.html
Пожалуйста, помогите решить задачу, не получается уже месяц (если решать с массивами, то нужно создавать по условию задачи массив размером от 0 до 10 в 18 степени - получается слишком большой массив). Если кто догадывается, то пожалуйста пришлите код к непокорной :) задаче , не дающая покоя. Буду очень благодарен. 1001. Обратный корень Ограничение времени: 2.0 секунды Ограничение...
C++ Массивы объектов в С++ Как работать с массивом объектов (классы)? Приведите пожалуйста какой-то простой пример . Заранее огромное спасибо . подробнее

Показать сообщение отдельно
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
05.11.2012, 08:59     Уплотнение матрицы
Цитата Сообщение от 001fess Посмотреть сообщение
Сделал все, но почему-то не удаляются только столбцы.
См комментарии:
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
   case 4:
            
            
                
                
                bool nol;
                
                    for(int i=0; i<nstr; i++)
                    
                    {
                            nol=true;
                            for(int j=0; j<nstb; j++)
                            {
                                if(mas[i][j]<0)
                                {
                                    nol=false;
                                }
                            }
                                if(nol==true)// nol будет равным true если в строке не встретился ни один отрицательный элемент, а в условии записано другое (удалить нужно строки и столбцы, заполненные только отрицательными элементами)
                                {
                                    for(k=i; k<nstr-1; k++)// в этих циклах "удаляется" строка. У Вас здесь утечка памяти, ведь для mas[nstr-1] не вызывается delete
                                    {
                                        mas[k]=mas[k+1];
                                    }
                                    nstr--;
                                    i--;
                                }
                    }
                
                    
                    for(int i=0; i<nstr; i++)
                    {
                        
                            
                            nol=true;
                            for(int j=0; j<nstb; j++)
                            {
                                
                                if(mas[i][j]<0)// тоже самое что и для строк
                                    {
                                        nol=false;
                                    }
                            }
                                    if(nol==true)
                                                
 
                                    {
                                        for(k=i; k<nstb-1;k++)
                                        {
                                            
                                            mas[k]=mas[k+1];// к сожалению для столбцов такой номер не пройдет, как для строк. Здесь нужен двойной цикл.
                                        }
                                        nstb--;
                                        j--;
                                    
                                    }       
                    }
                    
                    
                    
                            for(int i=0; i<nstr;i++)
                            { 
                                for (int j=0; j<nstb;j++)
                                {
                                    printf("%-5d", mas[i][j]);
                                }
                                    printf("\n");
                            }
            
                            
                break;
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru