С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 5.00
mary1010
0 / 0 / 0
Регистрация: 17.09.2012
Сообщений: 32
#1

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

22.02.2013, 01:09. Просмотров 1409. Ответов 27
Метки нет (Все метки)

Я новичок в с++...поэтому оооочень нужна Ваша помощь!!!

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

У меня почему-то не получается вызвать функции и ошибки в 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;
        }
 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.02.2013, 01:09
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Матрицы. Программа, которая удаляет столбец матрицы, содержащий максимальный ее элемент (C++):

Поменять местами столбцы матрицы: столбец, содержащий максимальный элемент матрицы, и столбец, содержащий минимальный элемент матрицы. - C++
В матрице, состоящей из положительных действительных чисел поменять местами два столбца: столбец, содержащий максимальный элемент...

Удалить столбец, содержащий максимальный элемент матрицы. - C++
Дана матрица размера M × N. Удалить столбец, содержащий максимальный элемент матрицы.

Удалить столбец, содержащий максимальный элемент матрицы - C++
Дана матрица размера M × N. Удалить столбец, содержащий максимальный элемент матрицы

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

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

Дана матрица размера M × N. Продублировать столбец матрицы, содержащий ее минимальный элемент. - C++
Дана матрица размера M × N. Продублировать столбец матрицы, содержащий ее минимальный элемент. Помогите пожалуйста!!!

27
Kuzia domovenok
2078 / 1907 / 176
Регистрация: 25.03.2012
Сообщений: 6,575
Записей в блоге: 1
22.02.2013, 01:12 #2
Цитата Сообщение от mary1010 Посмотреть сообщение
DeleteColumn(int** inArray, *int width);
это что?
0
mary1010
0 / 0 / 0
Регистрация: 17.09.2012
Сообщений: 32
22.02.2013, 01:14  [ТС] #3
Kuzia domovenok, функция, которая столбец удаляет и ищет максимальный элемент
0
vua72
416 / 416 / 85
Регистрация: 28.11.2010
Сообщений: 1,183
Завершенные тесты: 1
22.02.2013, 01:14 #4
C++
1
int l = inArray[i][j] ;
у вас не поределены переменные i j
0
mary1010
0 / 0 / 0
Регистрация: 17.09.2012
Сообщений: 32
22.02.2013, 01:18  [ТС] #5
vua72, поределены?...
типо не проинициализированы?а как это сделать?и почему это действие не требовалось в других функциях?
0
Kuzia domovenok
2078 / 1907 / 176
Регистрация: 25.03.2012
Сообщений: 6,575
Записей в блоге: 1
22.02.2013, 01:22 #6
дружище, да ты походу не способен инициализировать массивы и вызывать функции. Как же ты написал весь этот код? Выделение памяти, например?
Лучше вместо того, чтобы заморачиваться со своей программой, потренируйся просто вызывать функции на более простом примере.
0
vua72
416 / 416 / 85
Регистрация: 28.11.2010
Сообщений: 1,183
Завершенные тесты: 1
22.02.2013, 01:23 #7
не определены, вы их вообще не объявили.
напишите перед строкой int i=0, j=0;

Добавлено через 1 минуту
там вообще вся функция с необъявленными переменными.
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?
что не так с синтаксисом?
0
Kuzia domovenok
2078 / 1907 / 176
Регистрация: 25.03.2012
Сообщений: 6,575
Записей в блоге: 1
22.02.2013, 01:41 #9
это значит, что так
Цитата Сообщение от mary1010 Посмотреть сообщение
DeleteColumn(int** inArray, *int width);
не вызывают функции.
в функцию надо передать аргументы, а не просто копировать прототип.
1
vua72
416 / 416 / 85
Регистрация: 28.11.2010
Сообщений: 1,183
Завершенные тесты: 1
22.02.2013, 01:44 #10
вы скопировали прототип, а нужно вызвать функцию, у вас матрица как в main зовется? А ее размер?
1
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
0
vua72
416 / 416 / 85
Регистрация: 28.11.2010
Сообщений: 1,183
Завершенные тесты: 1
22.02.2013, 02:12 #12
у вас объявлены в программе две переменные s и t, но никогда не используются
1
mary1010
0 / 0 / 0
Регистрация: 17.09.2012
Сообщений: 32
22.02.2013, 02:13  [ТС] #13
vua72, спасибо)
но функции не вызываются...
0
vua72
416 / 416 / 85
Регистрация: 28.11.2010
Сообщений: 1,183
Завершенные тесты: 1
22.02.2013, 02:15 #14
выкладывайте последний код
0
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;
        }
 
}
0
22.02.2013, 02:19
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.02.2013, 02:19
Привет! Вот еще темы с ответами:

Найти сумму элементов в строке содержащий максимальный элемент матрицы - C++
Здравствуйте. Помогите пожалуйста решить задачу: Дана прямоугольная матрица разм. 3х4. Найти сумму элементов в строке содержащий...

Сформировать одномерный массив как столбец матрицы,содержащий минимальный элемент на побочной диагонали - C++
2. Сформировать одномерный массив как столбец матрицы, содержащий минимальный элемент на побочной диагонали.

В строке содержащий максимальный элемент матрицы, подсчитать сумму элементов по заданной формуле - C++
Вечер добрый, последняя лаба за семестр, состоит из двух заданий(первое я сделал вообще на изи), меня интересует код... ну как интересует,...

Максимальный элемени матрицы заменить на нуль и вывести на печать угол матрицы, в котором расположен этот максимальный элемент - C++
собственно сабж. буду очень благодарен тому кто поможет,а то я на грани отчисления,а уроки по c++ пролежал дома с переломом ноги =(


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.