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

Сформировать матрицу n+1 на n+1, где n+1 столбцом является min каждой строки, а n+1 строкой — max каждого столбца - C++

Восстановить пароль Регистрация
 
adelina2223
0 / 0 / 0
Регистрация: 27.11.2013
Сообщений: 21
22.03.2014, 17:09     Сформировать матрицу n+1 на n+1, где n+1 столбцом является min каждой строки, а n+1 строкой — max каждого столбца #1
Помогите пожалуйста ))
В С++ нужно сделать)
Дана матрица n на n. Сформировать новую матрицу n+1 на n+1, где n+1 столбцом является min каждой строки, а n+1 строкой — max каждого столбца; последний элемент а[n+1, n+1] равен сумме max строк и min всех столбцов.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.03.2014, 17:09     Сформировать матрицу n+1 на n+1, где n+1 столбцом является min каждой строки, а n+1 строкой — max каждого столбца
Посмотрите здесь:

3. Вставить нулевую строку и нулевой столбец перед строкой и столбцом, где находится первый минимальный элемент. C++
Сформировать вектор, состоящий из максимальных элементов каждого столбца (строки) матрицы C++
C++ Массив: Получить новую матрицу следующим способом: умножением Min каждой строки первой матрицы на Max соответствующего столбца второй
C++ Сформировать вектор, состоящий из максимальных элементов каждого столбца (строки) матрицы
C++ Найти max и min, если min левее max, то среднее арифметическое между ними
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
adelina2223
0 / 0 / 0
Регистрация: 27.11.2013
Сообщений: 21
15.06.2014, 08:53  [ТС]     Сформировать матрицу n+1 на n+1, где n+1 столбцом является min каждой строки, а n+1 строкой — max каждого столбца #2
help
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11819 / 6798 / 769
Регистрация: 27.09.2012
Сообщений: 16,876
Записей в блоге: 2
Завершенные тесты: 1
15.06.2014, 09:10     Сформировать матрицу n+1 на n+1, где n+1 столбцом является min каждой строки, а n+1 строкой — max каждого столбца #3
Цитата Сообщение от adelina2223 Посмотреть сообщение
В С++ нужно сделать)
так делайте.
Цитата Сообщение от adelina2223 Посмотреть сообщение
Помогите пожалуйста
а мы поможем
adelina2223
0 / 0 / 0
Регистрация: 27.11.2013
Сообщений: 21
15.06.2014, 09:15  [ТС]     Сформировать матрицу n+1 на n+1, где n+1 столбцом является min каждой строки, а n+1 строкой — max каждого столбца #4
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
/*#include <iostream>
#include <fstream>
using namespace std;
int main()
{
int *b,*a,n,i,j,min,max,sum;
cin»n;
a=new int [n*n];
for (i=0;i<n;i++) 
for (j=0;j<n;j++)
cin»*(a+i*n+j);
b=new int [(n+1)*(n+1)];
min=2147483648;
i = n;
for (j=0;j<n;j++)
{
if (*(a+i*n+j)<min) min=*(a+i*n+n);
*(b+i*n+n)=min;
}
max=0;
j = n;
for (i=0;i<n;i++)
{
if (*(a+i*n+j)>max) max=*(a+i*n+n);
*(b+i*n+n)=max;
}
signed char shit;
shit = 127; //01111111
shit ^= 1; //11111111 
sum=max+min;
for (i=0;i<n;i++)
{
for (j=0;j<n;j++)
sum;
}
 
for (i=0;i<n;i++)
{
for (j=0;j<n;j++)
cout«*(a+i*n+j)«" ";
cout«'\n';
}
system("pause");
 
}
*/
 
#include <iostream>
using namespace std;
#define па for(int i = 0; i < n; i++) for(int j = 0; j < n; j++) cin » a[i+j*(n+1)];
#define ва for(int i = 0; i < n; i++){
#define ка for(int j = 0; j < n; j++){
int main()
{
int n;
cout « "Vvod razm: ";
cin » n;
int (* a) = new int[(n+1)*(n+1)]; // указатель на массив! Не массив указателей!
cout « "matr" « endl;
па;
//down-roll
 
int sum = 0;
ва
int min = 999999;
for(int j = 0; j < n; j++) if(a[i + j * (n+1)] < min) min = a[i + j * (n+1)];
a[i + (n+1)*n] = min;
sum += min;
}
ка
int max = -999999;
for(int i = 0; i < n; i++) if(a[i + j * (n+1)] > max) max = a[i + j * (n+1)];
a[n + (n+1)*j] = max;
sum += max;
}
a[(n+1)*(n+1)-1] = sum;
cout « "vivod: \n";
for (int i = 0; i < n+1; i++)
{
for(int j = 0; j < n+1; j++)
{
cout « a[i + j * (n+1)] « ' ';
}
cout « '\n';
}
system("pause");
return 0;
}
Добавлено через 4 минуты
Код программы есть,тока переделать нужно что б был код попроще, просто мне необходимо сдать сейчас на экзамене ((((
SlavaSSU
213 / 158 / 44
Регистрация: 17.07.2012
Сообщений: 580
15.06.2014, 11:30     Сформировать матрицу n+1 на n+1, где n+1 столбцом является min каждой строки, а n+1 строкой — max каждого столбца #5
экзамен в воскресенье? О.о
еще надо или уже нет?
adelina2223
0 / 0 / 0
Регистрация: 27.11.2013
Сообщений: 21
15.06.2014, 11:33  [ТС]     Сформировать матрицу n+1 на n+1, где n+1 столбцом является min каждой строки, а n+1 строкой — max каждого столбца #6
да , надо, если это возможно =)
SlavaSSU
213 / 158 / 44
Регистрация: 17.07.2012
Сообщений: 580
15.06.2014, 11:33     Сформировать матрицу n+1 на n+1, где n+1 столбцом является min каждой строки, а n+1 строкой — max каждого столбца #7
C++ (Qt)
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
#include <iostream>
 
using namespace std;
 
int a[111][111];
int b[111][111];
 
int main()
{
    int n;
    cout << "vvedite razmer matricy" << endl;
    cin >> n;
    cout << "vvedite matricu" << endl;
    for(int i= 0; i < n; i++)
        for(int j = 0; j < n; j++)
            cin >> a[i][j], b[i][j] = a[i][j];
 
    //zapolnyaem posledniy stolbec
    for(int i = 0; i < n; i++)
    {
        int mn = 1000 * 1000 * 1000;
        int mx = -1000 * 1000 * 1000;
        for(int j = 0; j < n; j++)
        {
            if(a[i][j] < mn)
                mn = a[i][j];
            if(a[i][j] > mx)
                mx = a[i][j];
        }
 
        b[i][n] = mn;
        //srazu schitaem b[n][n]
        b[n][n] += mx;
    }
 
    //zapolnyaem poslednyuu stroku
    for(int j = 0; j < n; j++)
    {
        int mx = -1000 * 1000 * 1000;
        int mn = 1000 * 1000 * 1000;
        for(int i = 0; i < n; i++)
        {
            if(a[i][j] > mx)
                mx = a[i][j];
            if(a[i][j] < mn)
                mn = a[i][j];
        }
 
        b[n][j] = mx;
        //srazu schitaem b[n][n]
        b[n][n] += mn;
    }
 
    cout << "result" << endl;
    for(int i = 0; i < n + 1; i++)
    {
        for(int j = 0; j < n + 1; j++)
            cout << b[i][j] << ' ';
        cout << endl;
    }
 
    return 0;
}
adelina2223
0 / 0 / 0
Регистрация: 27.11.2013
Сообщений: 21
15.06.2014, 11:38  [ТС]     Сформировать матрицу n+1 на n+1, где n+1 столбцом является min каждой строки, а n+1 строкой — max каждого столбца #8
Цитата Сообщение от SlavaSSU Посмотреть сообщение
C++ (Qt)
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
#include <iostream>
 
using namespace std;
 
int a[111][111];
int b[111][111];
 
int main()
{
    int n;
    cout << "vvedite razmer matricy" << endl;
    cin >> n;
    cout << "vvedite matricu" << endl;
    for(int i= 0; i < n; i++)
        for(int j = 0; j < n; j++)
            cin >> a[i][j], b[i][j] = a[i][j];
 
    //zapolnyaem posledniy stolbec
    for(int i = 0; i < n; i++)
    {
        int mn = 1000 * 1000 * 1000;
        int mx = -1000 * 1000 * 1000;
        for(int j = 0; j < n; j++)
        {
            if(a[i][j] < mn)
                mn = a[i][j];
            if(a[i][j] > mx)
                mx = a[i][j];
        }
 
        b[i][n] = mn;
        //srazu schitaem b[n][n]
        b[n][n] += mx;
    }
 
    //zapolnyaem poslednyuu stroku
    for(int j = 0; j < n; j++)
    {
        int mx = -1000 * 1000 * 1000;
        int mn = 1000 * 1000 * 1000;
        for(int i = 0; i < n; i++)
        {
            if(a[i][j] > mx)
                mx = a[i][j];
            if(a[i][j] < mn)
                mn = a[i][j];
        }
 
        b[n][j] = mx;
        //srazu schitaem b[n][n]
        b[n][n] += mn;
    }
 
    cout << "result" << endl;
    for(int i = 0; i < n + 1; i++)
    {
        for(int j = 0; j < n + 1; j++)
            cout << b[i][j] << ' ';
        cout << endl;
    }
 
    return 0;
}
он сразу же закрывает программу после того как матрица введена : (
SlavaSSU
213 / 158 / 44
Регистрация: 17.07.2012
Сообщений: 580
15.06.2014, 11:44     Сформировать матрицу n+1 на n+1, где n+1 столбцом является min каждой строки, а n+1 строкой — max каждого столбца #9
1) а ты верно вводишь? сначала число n потом n * n чисел?
2) добавь перед return 0 добавь строчку system("pause");
adelina2223
0 / 0 / 0
Регистрация: 27.11.2013
Сообщений: 21
15.06.2014, 11:50  [ТС]     Сформировать матрицу n+1 на n+1, где n+1 столбцом является min каждой строки, а n+1 строкой — max каждого столбца #10
Цитата Сообщение от SlavaSSU Посмотреть сообщение
1) а ты верно вводишь? сначала число n потом n * n чисел?
2) добавь перед return 0 добавь строчку system("pause");
1) да сначала n, потомn n* n чисел.
Большое спасибо =)
Помогите пожалуйста с другой программой , там необходимо сделать ввод строки с клавиатуры, а не в коде программы )
SlavaSSU
213 / 158 / 44
Регистрация: 17.07.2012
Сообщений: 580
15.06.2014, 11:53     Сформировать матрицу n+1 на n+1, где n+1 столбцом является min каждой строки, а n+1 строкой — max каждого столбца #11
"сделать ввод строки с клавиатуры, а не в коде программы" - что это???
дай полное условие.
что-то я не понял, сегодня что, учатся все?
adelina2223
0 / 0 / 0
Регистрация: 27.11.2013
Сообщений: 21
15.06.2014, 11:58  [ТС]     Сформировать матрицу n+1 на n+1, где n+1 столбцом является min каждой строки, а n+1 строкой — max каждого столбца #12
Цитата Сообщение от SlavaSSU Посмотреть сообщение
"сделать ввод строки с клавиатуры, а не в коде программы" - что это???
дай полное условие.
что-то я не понял, сегодня что, учатся все?
Обработка строк с использованием указателей: вывести слова в два столбика, по четности их длины.
Дана строка. Распечатать слова в два столбика. 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
#include <stdafx.h>
#include<iostream>
#include <conio.h>
#include<string>
#include <vector>
#include<algorithm>
 
using namespace std;
 
int main() {
string init = "sss jkjkd ssdl erjk fddl edd ";
vector<char> result;
vector<string> a;
vector<string> b;
for (const char& c : init)
if (isalpha(c)) result.push_back(c);
else if (result.size()) {
if (result.size() % 2)
a.push_back(string(result.begin(), result.end()));
else
b.push_back(string(result.begin(), result.end()));
result.clear();
}
for (int i = 0; i < ((a.size() > b.size()) ? a.size() : b.size()); i++) {
if (i < b.size())cout << b[i];
cout << "\t\t";
if (i < a.size()) cout << a[i];
cout << endl;
};
 
_getch();
}
SlavaSSU
213 / 158 / 44
Регистрация: 17.07.2012
Сообщений: 580
15.06.2014, 12:09     Сформировать матрицу n+1 на n+1, где n+1 столбцом является min каждой строки, а n+1 строкой — max каждого столбца #13
лол)))

C++ (Qt)
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
#include <stdafx.h>
#include<iostream>
#include <conio.h>
#include<string>
#include <vector>
#include<algorithm>
 
using namespace std;
 
int main() {
string init;
cout << "vvedtie stroku" << endl;
getline(cin, init);
vector<char> result;
vector<string> a;
vector<string> b;
for (const char& c : init)
if (isalpha(c)) result.push_back(c);
else if (result.size()) {
if (result.size() % 2)
a.push_back(string(result.begin(), result.end()));
else
b.push_back(string(result.begin(), result.end()));
result.clear();
}
for (int i = 0; i < ((a.size() > b.size()) ? a.size() : b.size()); i++) {
if (i < b.size())cout << b[i];
cout << "\t\t";
if (i < a.size()) cout << a[i];
cout << endl;
};
 
_getch();
}
Добавлено через 6 минут
тот код со строками который ты кинула, он рабочий???
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.06.2014, 07:09     Сформировать матрицу n+1 на n+1, где n+1 столбцом является min каждой строки, а n+1 строкой — max каждого столбца
Еще ссылки по теме:

Сформировать квадратную матрицу; транспонировать матрицу и инвертировать порядок элементов каждой ее строки C++
В двумерном массиве определить среднее арифметическое каждого столбца и максимум и минимум каждой строки C++

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

Или воспользуйтесь поиском по форуму:
adelina2223
0 / 0 / 0
Регистрация: 27.11.2013
Сообщений: 21
18.06.2014, 07:09  [ТС]     Сформировать матрицу n+1 на n+1, где n+1 столбцом является min каждой строки, а n+1 строкой — max каждого столбца #14
Цитата Сообщение от SlavaSSU Посмотреть сообщение
лол)))

C++ (Qt)
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
#include <stdafx.h>
#include<iostream>
#include <conio.h>
#include<string>
#include <vector>
#include<algorithm>
 
using namespace std;
 
int main() {
string init;
cout << "vvedtie stroku" << endl;
getline(cin, init);
vector<char> result;
vector<string> a;
vector<string> b;
for (const char& c : init)
if (isalpha(c)) result.push_back(c);
else if (result.size()) {
if (result.size() % 2)
a.push_back(string(result.begin(), result.end()));
else
b.push_back(string(result.begin(), result.end()));
result.clear();
}
for (int i = 0; i < ((a.size() > b.size()) ? a.size() : b.size()); i++) {
if (i < b.size())cout << b[i];
cout << "\t\t";
if (i < a.size()) cout << a[i];
cout << endl;
};
 
_getch();
}
Добавлено через 6 минут
тот код со строками который ты кинула, он рабочий???
да)))
Огромное спасибо за помощь, я сдала экзамен ^______^
Yandex
Объявления
18.06.2014, 07:09     Сформировать матрицу n+1 на n+1, где n+1 столбцом является min каждой строки, а n+1 строкой — max каждого столбца
Ответ Создать тему
Опции темы

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