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

Матрицы. Программа, которая удаляет столбец матрицы, содержащий максимальный ее элемент - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 5.00
mary1010
0 / 0 / 0
Регистрация: 17.09.2012
Сообщений: 32
22.02.2013, 01:09     Матрицы. Программа, которая удаляет столбец матрицы, содержащий максимальный ее элемент #1
Я новичок в с++...поэтому оооочень нужна Ваша помощь!!!

Необходимо написать программу, которая удаляет столбец матрицы, содержащий максимальный ее элемент. Элементы
вводятся с клавиатуры и еще нужно использовать функции.

У меня почему-то не получается вызвать функции и ошибки в DeleteColumn типа:
1.[C++ Error] Unit1.cpp(29): E2188 Expression syntax
2.[C++ Error] Unit1.cpp(46): E2451 Undefined symbol 'i'
.....
3.[C++ Warning] Unit1.cpp(71): W8004 't' is assigned a value that is never used
.....

вот собственно код:
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
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#pragma argsused
#include <iostream>
#include <math.h>
#include <conio.h>
#include <stdio.h>
#include <ctime>
//---------------------------------------------------------------------------
using namespace std;
 
int** createMatrix(int);
void fillArray(int**, int);
void printArray(int**, int);
void DeleteColumn(int** inArray,  int width);
 
 int main()
{
int** matrix;
int length = 0;
 
matrix = createMatrix(length);
 
fillArray(matrix,length);
cout << "Matrix which is filled manually:" << endl;
printArray(matrix,length);
 
DeleteColumn(int** inArray,  int width);
cout << "New matrix:" << endl;
printArray(matrix,length);
system("pause");
}
 
int** createMatrix(int width)
{
int** matrix = new int*[width];
for (int i = 0; i < width; i++)
matrix [i] = new int[width];
return matrix;
}
//------------------------
void DeleteColumn(int** inArray,  int width )
{
 //searching max
 int l = inArray[i][j] ;
 int s=0;
 int t=0;
        for(i=0;i<width;i++)
           for(j=0;j<width;j++)
                if(inArray[i][j]>l)
                {
                l=inArray[i][j];
                t=i;
                s=j;
                }
        cout<<"max element=";
        cout<<l<<endl;
 
 //deleting column of a matrix
 for (j=0; j<width; j++)
   for (i=0;i<width; i++)
        if (inArray[i][j]=l)
               {
                       for (i=0; i<width; i1++)
                            for (i1=j; i1<(width-1); i1++)
                                 inArray[i][i1]=inArray[i][i1+1];
                       i=0;
                                         
                }
 }
//-------------------------
void fillArray(int** inArray, int width)
{
        for(int i = 0; i<width; i++)
           for(int j=0; j<width; j++)
{
 
cout << "Enter cell [" << i <<"," << j << "]"<< endl;
cin >> inArray[i][j];
}
 
}
 
void printArray(int** inArray, int width)
{
        for(int i = 0; i<width; i++){
          for(int j=0; j<width; j++)
{
cout << inArray[i][j] << " ";
}
cout << endl;
        }
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.02.2013, 01:09     Матрицы. Программа, которая удаляет столбец матрицы, содержащий максимальный ее элемент
Посмотрите здесь:

C++ Дана матрица размера M × N. Продублировать столбец матрицы, содержащий ее минимальный элемент.
C++ Найти сумму элементов в строке содержащий максимальный элемент матрицы
Удалить столбец, содержащий максимальный элемент матрицы. C++
C++ [C++] Удалить столбец, содержащий максимальный элемент матрицы
Поменять местами столбцы матрицы: столбец, содержащий максимальный элемент матрицы, и столбец, содержащий минимальный элемент матрицы. C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
22.02.2013, 01:12     Матрицы. Программа, которая удаляет столбец матрицы, содержащий максимальный ее элемент #2
Цитата Сообщение от mary1010 Посмотреть сообщение
DeleteColumn(int** inArray, *int width);
это что?
mary1010
0 / 0 / 0
Регистрация: 17.09.2012
Сообщений: 32
22.02.2013, 01:14  [ТС]     Матрицы. Программа, которая удаляет столбец матрицы, содержащий максимальный ее элемент #3
Kuzia domovenok, функция, которая столбец удаляет и ищет максимальный элемент
vua72
410 / 410 / 83
Регистрация: 28.11.2010
Сообщений: 1,158
22.02.2013, 01:14     Матрицы. Программа, которая удаляет столбец матрицы, содержащий максимальный ее элемент #4
C++
1
int l = inArray[i][j] ;
у вас не поределены переменные i j
mary1010
0 / 0 / 0
Регистрация: 17.09.2012
Сообщений: 32
22.02.2013, 01:18  [ТС]     Матрицы. Программа, которая удаляет столбец матрицы, содержащий максимальный ее элемент #5
vua72, поределены?...
типо не проинициализированы?а как это сделать?и почему это действие не требовалось в других функциях?
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
22.02.2013, 01:22     Матрицы. Программа, которая удаляет столбец матрицы, содержащий максимальный ее элемент #6
дружище, да ты походу не способен инициализировать массивы и вызывать функции. Как же ты написал весь этот код? Выделение памяти, например?
Лучше вместо того, чтобы заморачиваться со своей программой, потренируйся просто вызывать функции на более простом примере.
vua72
410 / 410 / 83
Регистрация: 28.11.2010
Сообщений: 1,158
22.02.2013, 01:23     Матрицы. Программа, которая удаляет столбец матрицы, содержащий максимальный ее элемент #7
не определены, вы их вообще не объявили.
напишите перед строкой int i=0, j=0;

Добавлено через 1 минуту
там вообще вся функция с необъявленными переменными.
mary1010
0 / 0 / 0
Регистрация: 17.09.2012
Сообщений: 32
22.02.2013, 01:34  [ТС]     Матрицы. Программа, которая удаляет столбец матрицы, содержащий максимальный ее элемент #8
vua72,
Kuzia domovenok, а что все таки значит: [C++ Error] Unit1.cpp(29): E2188 Expression syntax?
что не так с синтаксисом?
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
22.02.2013, 01:41     Матрицы. Программа, которая удаляет столбец матрицы, содержащий максимальный ее элемент #9
это значит, что так
Цитата Сообщение от mary1010 Посмотреть сообщение
DeleteColumn(int** inArray, *int width);
не вызывают функции.
в функцию надо передать аргументы, а не просто копировать прототип.
vua72
410 / 410 / 83
Регистрация: 28.11.2010
Сообщений: 1,158
22.02.2013, 01:44     Матрицы. Программа, которая удаляет столбец матрицы, содержащий максимальный ее элемент #10
вы скопировали прототип, а нужно вызвать функцию, у вас матрица как в main зовется? А ее размер?
mary1010
0 / 0 / 0
Регистрация: 17.09.2012
Сообщений: 32
22.02.2013, 02:07  [ТС]     Матрицы. Программа, которая удаляет столбец матрицы, содержащий максимальный ее элемент #11
vua72, значит правильно так?
C
1
DeleteColumn(matrix, length);
остается: [C++ Warning] Unit1.cpp(73): W8004 's' is assigned a value that is never used
[C++ Warning] Unit1.cpp(73): W8004 't' is assigned a value that is never used
vua72
410 / 410 / 83
Регистрация: 28.11.2010
Сообщений: 1,158
22.02.2013, 02:12     Матрицы. Программа, которая удаляет столбец матрицы, содержащий максимальный ее элемент #12
у вас объявлены в программе две переменные s и t, но никогда не используются
mary1010
0 / 0 / 0
Регистрация: 17.09.2012
Сообщений: 32
22.02.2013, 02:13  [ТС]     Матрицы. Программа, которая удаляет столбец матрицы, содержащий максимальный ее элемент #13
vua72, спасибо)
но функции не вызываются...
vua72
410 / 410 / 83
Регистрация: 28.11.2010
Сообщений: 1,158
22.02.2013, 02:15     Матрицы. Программа, которая удаляет столбец матрицы, содержащий максимальный ее элемент #14
выкладывайте последний код
mary1010
0 / 0 / 0
Регистрация: 17.09.2012
Сообщений: 32
22.02.2013, 02:19  [ТС]     Матрицы. Программа, которая удаляет столбец матрицы, содержащий максимальный ее элемент #15
vua72,
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
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#pragma argsused
#include <iostream>
#include <math.h>
#include <conio.h>
#include <stdio.h>
//#include <ctime>
//---------------------------------------------------------------------------
using namespace std;
 
int** createMatrix(int);
void fillArray(int**, int);
void printArray(int**, int);
void DeleteColumn(int**,  int );
 
 int main()
{
int** matrix;
int length = 0;
 
matrix = createMatrix(length);
 
fillArray(matrix,length);
cout << "Matrix which is filled manually:" << endl;
printArray(matrix,length);
 
DeleteColumn(matrix, length);
cout << "New matrix:" << endl;
printArray(matrix,length);
system("pause");
}
 
int** createMatrix(int width)
{
int** matrix = new int*[width];
for (int i = 0; i < width; i++)
matrix [i] = new int[width];
return matrix;
}
//------------------------
void DeleteColumn(int** inArray,  int width )
{ int i=0, j=0, i1=0;
 
 
 //searching max
 int l = inArray[i][j] ;
 int s=0;
 int t=0;
        for(i=0;i<width;i++)
           for(j=0;j<width;j++)
                if(inArray[i][j]>l)
                {
                l=inArray[i][j];
                t=i;
                s=j;
                }
        cout<<"max element=";
        cout<<l<<endl;
 
 //deleting column of a matrix
 for (j=0; j<width; j++)
   for (i=0;i<width; i++)
        if (inArray[i][j]==l)
               {
                       for (i=0; i<width; i++)
                            for (i1=j; i1<(width-1); i1++)
                                 inArray[i][i1]=inArray[i][i1+1];
                       i=0;
 
                }
 }
//-------------------------
void fillArray(int** inArray, int width)
{
        for(int i = 0; i<width; i++)
           for(int j=0; j<width; j++)
{
 
cout << "Enter cell [" << i <<"," << j << "]"<< endl;
cin >> inArray[i][j];
}
 
}
 
void printArray(int** inArray, int width)
{
        for(int i = 0; i<width; i++){
          for(int j=0; j<width; j++)
{
cout << inArray[i][j] << " ";
}
cout << endl;
        }
 
}
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
22.02.2013, 02:28     Матрицы. Программа, которая удаляет столбец матрицы, содержащий максимальный ее элемент #16
Цитата Сообщение от mary1010 Посмотреть сообщение
int length = 0;
matrix = createMatrix(length);
что ты тут делаешь? Объясни.
Ты хоть сам понимаешь, что пишешь? Или кто-то тебе написал отрывками, а ты копируешь себе.
vua72
410 / 410 / 83
Регистрация: 28.11.2010
Сообщений: 1,158
22.02.2013, 02:39     Матрицы. Программа, которая удаляет столбец матрицы, содержащий максимальный ее элемент #17
mary1010, проверьте свой код, напишите алгоритм словами на листике, иначе никак. Вы выделяете память под массив какого размера? И где?

Добавлено через 3 минуты
C++
1
2
3
4
5
6
7
8
9
for (j = 0; j < width; j++)
        for (i = 0; i < width; i++)
            if (inArray[i][j] == l) {
                for (i = 0; i < width; i++)
                    for (i1 = j; i1 < (width - 1); i1++)
                        inArray[i][i1] = inArray[i][i1 + 1];
                i = 0;
 
            }
и почему вы не можете выйти из этого цикла?
mary1010
0 / 0 / 0
Регистрация: 17.09.2012
Сообщений: 32
22.02.2013, 02:45  [ТС]     Матрицы. Программа, которая удаляет столбец матрицы, содержащий максимальный ее элемент #18
Kuzia domovenok, length - размерность матрицы
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
matrix = createMatrix(length)
- создание матрицы с заданной размерностью....я так понимаю...
части кода писали на лекции и я включила их в программу, если что-то получается не совсем корректно, то прошу извинить, я только на 1 курсе и с преподавателем не очень повезло
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
22.02.2013, 03:09     Матрицы. Программа, которая удаляет столбец матрицы, содержащий максимальный ее элемент #19

Не по теме:

Цитата Сообщение от mary1010 Посмотреть сообщение
я только на 1 курсе и с преподавателем не очень повезло
ты только УЖЕ на первом курсе и преподаватель никому ничего не обязан


Впрочем, твоё дело.
По теме. Ты пытаешься создать матрицу нулевого размера. Где задаётся length?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.02.2013, 03:13     Матрицы. Программа, которая удаляет столбец матрицы, содержащий максимальный ее элемент
Еще ссылки по теме:

C++ Максимальный элемент матрицы заменить на нуль и вывести на печать угол матрицы, в котором расположен этот максимальный элемент
Максимальный элемени матрицы заменить на нуль и вывести на печать угол матрицы, в котором расположен этот максимальный элемент C++
Дана матрица размера 4х9. Обнулить столбец матрицы, содержащий ее максимальный элемент C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
mary1010
0 / 0 / 0
Регистрация: 17.09.2012
Сообщений: 32
22.02.2013, 03:13  [ТС]     Матрицы. Программа, которая удаляет столбец матрицы, содержащий максимальный ее элемент #20
Kuzia domovenok,
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
преподаватель никому ничего не обязан
знаю, что не обязан...но тяжело...
спасибо, буду разбираться
Yandex
Объявления
22.02.2013, 03:13     Матрицы. Программа, которая удаляет столбец матрицы, содержащий максимальный ее элемент
Ответ Создать тему
Опции темы

Текущее время: 06:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru