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

Удаление столбцов из матрицы содержащих число 1 - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ q-sort сортировка http://www.cyberforum.ru/cpp-beginners/thread438052.html
Здраствуйте , не могу понять где в коде ошибка . Выдает такое :d:\program files\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\..\..\..\libmingw32.a(main.o):main.c|| undefined reference to...
C++ Задача на строки: Вывести директорию файла. Задача: из полного адреса файла выделить его основную директорию. Если файл находится в корневой директории, вывести символ "\". Считать что адрес введен всегда правильно. Короче, если дан адрес... http://www.cyberforum.ru/cpp-beginners/thread438049.html
В произвольной тексте на русском языке вывести строки, содержащие более 5 букв "о" C++
Привет всем! Вобщем у меня проблема, есть задачка: В произвольной тексте на русском языке вывести строки, содержащие более 5 букв "о". Не подскажите как это реализовать?) как поменять буквы в...
Помогите найти ошибку C++
//Даны три положительных числа а, b, c. Проверить, могут ли они быть длинами сторон треугольника. Если да, то вычислить площадь этого треугольника. #include <math.h> #include <iostream> using...
C++ нужна блок схема и ручной расчёт к етому коду http://www.cyberforum.ru/cpp-beginners/thread438019.html
помогите пожалуйста с: 1)блок-схема 2)ручной счет(подготовка программы) вот код: #include <stdio.h> #include <tchar.h> #include <stdlib.h> #define SIZE_ARRAY 10 //размер массива #define...
C++ Чтение и запись в файл. Как вывести значение на экран #include <sys/stat.h> #include <memory.h> #include <fcntl.h> #include <stdio.h> #include <io.h> struct mystruct { int i; char buf; double d; подробнее

Показать сообщение отдельно
mishe4ka
0 / 0 / 0
Регистрация: 21.09.2011
Сообщений: 21

Удаление столбцов из матрицы содержащих число 1 - C++

30.01.2012, 18:14. Просмотров 724. Ответов 3
Метки (Все метки)

дана матрица необходимо удалить столбцы содержащие 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
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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
#include<iostream>
#include<iomanip>
#include<cstdlib>
#include<cstddef>
using namespace std;
/////////////////////////////////////////////
//void deleteone(int n,int m,int one);
void outputm(double** a,int n,int m);
double** inputm(int n,int m);
double** udal(double** a,int n,int m,int &r);
 
///////////////////////////////////////////////
void deleteone(double** a,int n, int m, int one)
{
        int i,j;
        cout<<"Udalen stolb: "<<one<<endl;
        for(j=one; j<m-1; j++)
        {
           for(i=0; i<n; i++)
           {
                        a[i][j]=a[i][j+1];
           }
        }
}
// vvod matrici
double** inputm(int n,int m)
{
    int i,j;
    double** a;
    a=new double*[n];
    if(a==NULL)
    {cout<<endl;
                 exit(1);
    }
 
    for(i=0;i<n;i++)
    {
        a[i]=new double[m];
        if(a[i]==NULL)
        {
            cout<<"net op";
        }
    }
    //vvod matrici
    for(i=0;i<n;i++)
    {
        cout<<"\nVvesti "<<i<<"stroky"<<endl;
        for(j=0;j<m;j++)
            cin>>a[i][j];
    }
    return a;
}
//////////////////////////////////////////////////
//vivod matrici
void outputm(double** a,int n,int m)
{
    int i,j;
    
    for(i=0;i<n;i++)
    {
        cout<<endl;
        for(j=0;j<m;j++)
            cout<<setw(10)<<a[i][j];
    }
}
 
/////////////////////////////////////////////////////////////////
 
//iskluchenie stolbcov s chislom 1
double** udal(double** a,int n,int m,int &r)
{
    int i,j;
    double** b;
    bool  isOne;
 
 
    b=new double*[n];
    if(b==NULL)
    {cout<<endl;
                 exit(1);
    }
 
    for(i=0;i<n;i++)
    {
        b[i]=new double[m];
        if(b[i]==NULL)
        {
            cout<<"net op";
        }
    }
    //kopiryem matr a v matr b
    for(i=0;i<n;i++)
    {
        for(j=0;j<m;j++)
        {
            b[i][j]=a[i][j];
          
        }
    }   
    /////////////////////////////////////////////////////////////////
  for(j=0; j<m; j++)      // Удаление столбцов
        
  {
      isOne=true;
           for(i=0; i<n; i++)
           
                        if (b[i][j] != 1)
                        {
                                isOne=false;
                                break;
                        }
           
           if(isOne)
           {
             int  one=j;
             cout<<"Udalen stolb: "<<one<<endl;
             r=m-1;
              for(j=one; j<r; j++)
              {
                for(i=0; i<n; i++)
                    {
                        b[i][j]=b[i][j+1];
                       
                     }
              }
           }
  }
 
 
 return b;
    
}
 
 
/////////////////////////////////////////////////////////////////////
void main()
{
    int n,m,r;
    double** matr;
    double** b;
    cout<<"\nVvedite chislo strok\n";
    cin>>n;
    cout<<"\nVvedite chislo stolbcov\n";
    cin>>m;
    cout<<"\nVvesti cherez probel koordinati massiva matr\n";
    matr=inputm(n,m);
 
    cout<<"\nVivod massiva\n";
    outputm(matr,n,m);
    cout<<"\n yplotnenai matrica\n";
    b=udal(matr,n,m,r);
    outputm(b,n,r);
    
 
 
 
    cout<<endl;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru