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

Надо переписать код через оператор new - C++

Восстановить пароль Регистрация
 
agent008
1 / 1 / 0
Регистрация: 15.03.2014
Сообщений: 118
09.04.2014, 13:50     Надо переписать код через оператор new #1
Задание:
Найти минимальный элемент матрицы и заменить им элементы которые находятся ниже главной диагонали.

Надо переписать код через оператор new

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
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{
 
const int n=5;
int matrix[n][n];
int min;
cout << "Matrix: " << endl;
for(int i = 0; i < n; ++i)
{
for(int j = 0; j < n; ++j)
{
matrix[i][j] = 1 + rand() % 9;
cout << matrix[i][j] << " ";
min = (i == 0 && j == 0 ? matrix[i][j] : matrix[i][j] < min ? matrix[i][j] : min);
}
cout << endl;
}
cout<<"\n"<<"---------------------------"<<endl;
for(int i = 0; i < n; ++i)
for(int j = 0; j < i; ++j)
matrix[i][j] = min;
cout << "Posle: " << endl;
for(int i = 0; i < n; ++i)
{
for(int j = 0; j < n; ++j)
cout << matrix[i][j] << " ";
cout << endl;
}
cout<<"---------------------------"<<endl;
cout <<"Minimal element:"<< min <<"";
cout<<"\n"<<"---------------------------"<<endl;
}
Пример:

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
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
 
#define M 3
#define N 3
 
template <class T> void outvec(int n, T* vec)
{
    for(int i = 0; i < n; i++)
        std::cout << vec[i] << ' ';
    printf("\n");
}
 
int main()
{
    int A[][3] =
    {
        {1, 2, 3},
        {4, 5, 6},
        {7, 8, 9}
    };
    
    int B[][3] =
    {
        {-1, 0, 4},
        {0, 3, 0},
        {2, 0, 1}
    };
    
    int C[M][N] = {0};
    float **r;
    int i, j;
    float **t = new float* [3];
    for (i = 0; i < 3; i++)
    {
        t[i] = new float [3];
    }
 
    for (i=0; i<3; i++)
        for (j=0; j<3; j++)
            *(*(t+i)+j)=A[i][j];
 
    r = new float *[3];
    for (i=0; i<3; i++)
    {
        r[i]=new float [3];
    }
 
    for (i=0; i<3; i++)
        for (j=0; j<3; j++)
            r[i][j]=B[i][j];
 
    printf("Matrix A:\n");
    for(i = 0; i < M; i++)
        outvec(N, *(t + i));
 
    printf("Matrix B:\n");
    for(i = 0; i < M; i++)
        outvec(N, *(r + i));
    //C = A + B
    for(i = 0; i < M; i++)
        for(j = 0; j < N; j++)
            C[i][j] = *(*(t+i)+j) + *(*(r+i)+j);
    
    printf("Matrix C = A + B:\n");
    for(i = 0; i < M; i++)
        outvec(N, C[i]);
}
Добавлено через 19 часов 23 минуты
вверх
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.04.2014, 13:50     Надо переписать код через оператор new
Посмотрите здесь:

C++ Надо программу с бэйсика на С++ переписать
Решите програмку С++ на оператор процедуры/функции)))заранее благодарю)))оч надо C++
C++ переписать код с++
Переписать программу, используя другой оператор C++
Пытаюсь переписать код с циклом for, в код с циклом while, но не совсем получается C++
C++ Надо это программу переписать через do while
C++ Почему обращение к методам осуществляется через оператор прямого доступа, а не через оператор указателей->?
C++ Переписать код

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kiborgdelto
70 / 72 / 27
Регистрация: 23.03.2011
Сообщений: 141
09.04.2014, 14:13     Надо переписать код через оператор new #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
так чтоли
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
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{
 
int n=5;
int **matrix= new int *[n];
for(int i = 0; i < n; ++i)
    matrix[i]=new int[n];
 
int min;
cout << "Matrix: " << endl;
for(int i = 0; i < n; ++i)
{
for(int j = 0; j < n; ++j)
{
matrix[i][j] = 1 + rand() % 9;
cout << matrix[i][j] << " ";
min = (i == 0 && j == 0 ? matrix[i][j] : matrix[i][j] < min ? matrix[i][j] : min);
}
cout << endl;
}
cout<<"\n"<<"---------------------------"<<endl;
for(int i = 0; i < n; ++i)
for(int j = 0; j < i; ++j)
matrix[i][j] = min;
cout << "Posle: " << endl;
for(int i = 0; i < n; ++i)
{
for(int j = 0; j < n; ++j)
cout << matrix[i][j] << " ";
cout << endl;
}
cout<<"---------------------------"<<endl;
cout <<"Minimal element:"<< min <<"";
cout<<"\n"<<"---------------------------"<<endl;
system("pause");
}
Yandex
Объявления
09.04.2014, 14:13     Надо переписать код через оператор new
Ответ Создать тему
Опции темы

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