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

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

Войти
Регистрация
Восстановить пароль
 
Deirdre
0 / 0 / 0
Регистрация: 14.05.2009
Сообщений: 14
#1

Матрицы - C++

03.06.2009, 22:02. Просмотров 420. Ответов 2
Метки нет (Все метки)

Нужно убрать все лишние printf и написать отдельную функцию вывода матрицы на экран..
#include <stdio.h>
#include <stdlib.h>

//объявляем размер матрицы
#define n 5
void Transpon(int ** A, int len);
void BubbleSortDiag(int ** A, int len);
int FindMinDiag(int ** A, int len);

int main(int argc, char *argv[])
{
int i, j, temp;
//объявляем квадратную матрицу размером n
int **A=(int**)malloc(n * sizeof(int *));
for(i = 0; i < n; i++)
A[i] = (int *)malloc(n * sizeof(int));
// int A[n][n];
//Объявляем результирующую матрицу
int **B=(int**)malloc(n * sizeof(int *));
for(i = 0; i < n; i++)
B[i] = (int *)malloc(n * sizeof(int));


//генерируем seed для рандома
srand ( time(NULL) );

//заполняем матрицу случайными числами от -9 до 9 и сразу выводим ее на экран
printf("Matrica A:\n");
for(i=0; i<n; i++)
{
for(j=0; j<n; j++)
{
A[i][j]=rand()%19-9;
//выводим на экран, под значение матрицы отделяем 2 ячейки
printf ("A[%d][%d]:=%2d ", i, j, A[i][j]);
}
printf("\n");
}

//Копируем матрицу A в матрицу B
for(i=0;i<n;i++)for(j=0;j<n;j++)B[i][j]=A[i][j];
//Транспонируем B
Transpon(B,n);
printf("\nMatrica B:\n");
for(i=0; i<n; i++)
{
for(j=0; j<n; j++)
{
//выводим на экран, под значение матрицы отделяем 2 ячейки
printf ("B[%d][%d]:=%2d ", i, j, B[i][j]);
}
printf("\n");
}
printf("\n");

//Выводим побочную диагональ на экран, находим минимальный элемент
int min=FindMinDiag(A, n);
printf("Pobichna diagonal':\n");
for(i=0; i<n; i++)
{
printf ("A[%d][%d]:=%2d ", i, n-i-1, A[i][n-i-1]);
}
printf("\nMin= %d\n", min);
//Сортируем главную диагональ матрицы A методом пузырька
BubbleSortDiag(A, n);

//Выводим модифицированную матрицу A
printf("\nA z sortovannoyu diagonallyu:\n");
for(i=0; i<n; i++)
{
for(j=0; j<n; j++)
{
//выводим на экран, под значение матрицы отделяем 2 ячейки
printf ("A[%d][%d]:=%2d ", i, j, A[i][j]);
}
printf("\n");
}

system("PAUSE");
return 0;
}

void BubbleSortDiag(int ** A, int len)
{
int i,j,temp;
for(i=0; i<n; i++)
for(j=0; j<n-1; j++)
if(A[j][j]<A[j+1][j+1])
{
temp=A[j][j];
A[j][j]=A[j+1][j+1];
A[j+1][j+1]=temp;
}
return;
}

int FindMinDiag(int ** A, int len)
{
int i, j;
int min=A[0][n];
for(i=0; i<n; i++)
{
if(A[i][n-i-1]<min) min=A[i][n-i-1];

}
return min;
}

void Transpon(int ** A, int len)
{
int i, j, temp;
for(j=0; j<n; j++)
{
for(i=j; i<n; i++)
{
temp=A[j][i];
A[j][i]=A[i][j];
A[i][j]=temp;
}
}
return;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.06.2009, 22:02
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Матрицы (C++):

Матрицы. Найти и распечатать сумму элементов 5-го столбца матрицы А и сумму элементов последней строки матрицы В - C++
Даны две матрицы А(mxn)и В(m1xn1).программа находит и распечатывает сумму элементов 5-го столбца матрицы А и сумму элементов последней...

Вычесть из элементов первого столбца матрицы значение максимального элемента матрицы - C++
Составить программу, в которой 1) организовать ввод матрицы размера mxn из целых чисел; 2) вычесть из элементов первого столбца матрицы...

Зеркально отразить элементы матрицы относительно горизонтальной оси симметрии матрицы - C++
Здравствуйте! Помогите написать 3 программмы на C++ на задачи с двумерными массивами 3. Дана матрица размера M x N. Зеркально...

Найти количество элементов матрицы, которые совпадают с элементами другой матрицы - C++
Помогите найти количество элементов 2 мерного массива, которые совпадают с элементами другого аналогичного массива. Массив 5х3.

Для матрицы найти такие k, что k-я строка матрицы совпадает с k-м столбцом - C++
Помогите решить задачку Для заданной матрицы размером 8 на 8 найти такие k, что k-я строка матрицы совпадает с k-м столбцом. Найти...

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

2
vet
175 / 176 / 13
Регистрация: 08.04.2009
Сообщений: 1,309
04.06.2009, 07:41 #2
Цитата Сообщение от Deirdre Посмотреть сообщение
Нужно убрать все лишние printf и написать отдельную функцию вывода матрицы на экран..
Вроде лишних printf нет,большая часть из них красоту наводит,без них не так красиво смотрится,Вывод всех матриц и действий над ними забил в отдельную ф-цию

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
#include <stdio.h>
#include <stdlib.h>
#include<iostream>
using namespace std;
//îáúÿâëÿåì Г°Г*çìåð Г¬Г*òðèöû
#define n 5 
void Transpon(int ** A, int len);
void BubbleSortDiag(int ** A, int len);
int FindMinDiag(int ** A, int len);
void Print_matrix(int **A,int**B);
main()
{
int i, j, temp;
//îáúÿâëÿåì ГЄГўГ*äðГ*ГІГ*ГіГѕ Г¬Г*òðèöó Г°Г*çìåðîì n
int **A=(int**)malloc(n * sizeof(int *));
for(i = 0; i < n; i++)
A[i] = (int *)malloc(n * sizeof(int));
//Îáúÿâëÿåì ðåçóëüòèðóþùóþ Г¬Г*òðèöó
int **B=(int**)malloc(n * sizeof(int *));
for(i = 0; i < n; i++)
B[i] = (int *)malloc(n * sizeof(int));
 
//ГЈГҐГ*åðèðóåì seed äëÿ Г°Г*Г*äîìГ*
srand ( time(NULL) );
 
//Г§Г*ïîëГ*ГїГҐГ¬ Г¬Г*òðèöó ñëó÷Г*Г©Г*ûìè Г·ГЁГ±Г«Г*ìè îò -9 äî 9 ГЁ Г±Г°Г*çó âûâîäèì ГҐГҐ Г*Г* ГЅГЄГ°Г*Г*
 
Print_matrix(A,B);
cin.get();
}
 
void BubbleSortDiag(int ** A, int len)
{
int i,j,temp;
for(i=0; i<n; i++)
for(j=0; j<n-1; j++)
if(A[j][j]<A[j+1][j+1])
{
temp=A[j][j];
A[j][j]=A[j+1][j+1];
A[j+1][j+1]=temp;
}
return;
}
 
 
int FindMinDiag(int ** A, int len)
{
int i, j;
int min=A[0][n];
for(i=0; i<n; i++)
{
if(A[i][n-i-1]<min) min=A[i][n-i-1];
 
}
return min; 
}
 
 
void Transpon(int ** A, int len)
{
int i, j, temp;
for(j=0; j<n; j++)
{
for(i=j; i<n; i++)
{
temp=A[j][i];
A[j][i]=A[i][j];
A[i][j]=temp;
}
}
return;
}
 
/////////////////////////
/////////////////////////
void Print_matrix(int **A,int**B)
{
     printf("Matrica A:\n");
for(int i=0; i<n; i++)
{
for(int j=0; j<n; j++)
{
A[i][j]=rand()%19-9;
//âûâîäèì Г*Г* ГЅГЄГ°Г*Г*, ïîä Г§Г*Г*Г·ГҐГ*ГЁГҐ Г¬Г*òðèöû îòäåëÿåì 2 ÿ÷åéêè
printf ("A[%d][%d]:=%2d ", i, j, A[i][j]);
}
printf("\n");
}
//Êîïèðóåì Г¬Г*òðèöó A Гў Г¬Г*òðèöó B
for(int i=0;i<n;i++)for( int j=0;j<n;j++)B[i][j]=A[i][j];
 
printf("\nMatrica B:\n");
for(int i=0; i<n; i++)
{
for(int j=0; j<n; j++)
{
//âûâîäèì Г*Г* ГЅГЄГ°Г*Г*, ïîä Г§Г*Г*Г·ГҐГ*ГЁГҐ Г¬Г*òðèöû îòäåëÿåì 2 ÿ÷åéêè
printf ("B[%d][%d]:=%2d ", i, j, B[i][j]);
}
printf("\n");
} 
printf("\n");
//Г’Г°Г*Г*Г±ГЇГ®Г*èðóåì B
Transpon(B,n);
 
//Âûâîäèì ïîáî÷Г*ГіГѕ äèГ*ГЈГ®Г*Г*ëü Г*Г* ГЅГЄГ°Г*Г*, Г*Г*õîäèì ìèГ*ГЁГ¬Г*ëüГ*ûé ýëåìåГ*ГІ
int min=FindMinDiag(A, n);
printf("Pobichna diagonal':\n");
for(int i=0; i<n; i++)
{
printf ("A[%d][%d]:=%2d ", i, n-i-1, A[i][n-i-1]);
}
printf("\nMin= %d\n", min); 
//Ñîðòèðóåì ГЈГ«Г*ГўГ*ГіГѕ äèГ*ГЈГ®Г*Г*ëü Г¬Г*òðèöû A ìåòîäîì ïóçûðüêГ*
BubbleSortDiag(A, n);
 
//Âûâîäèì ìîäèôèöèðîâГ*Г*Г*ГіГѕ Г¬Г*òðèöó A
printf("\nA z sortovannoyu diagonallyu:\n");
for(int i=0; i<n; i++)
{
for(int j=0; j<n; j++)
{
//âûâîäèì Г*Г* ГЅГЄГ°Г*Г*, ïîä Г§Г*Г*Г·ГҐГ*ГЁГҐ Г¬Г*òðèöû îòäåëÿåì 2 ÿ÷åéêè
printf ("A[%d][%d]:=%2d ", i, j, A[i][j]);
}
printf("\n");
} 
system("PAUSE"); 
}
1
Deirdre
0 / 0 / 0
Регистрация: 14.05.2009
Сообщений: 14
04.06.2009, 19:09  [ТС] #3
спасибо!!!!!!=)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.06.2009, 19:09
Привет! Вот еще темы с ответами:

Сформировать одномерный массив из диагональных элементов матрицы. Найти след матрицы - C++
Для заданной квадратной матрицы сформировать одномерный массив из ее диагональных элементов. Найти след матрицы, суммируя элементы...

Преобразование матрицы (удалить из матрицы столбец с наибольшей по модулю суммой элементов) - C++
Всем привет, есть программа для ввода матрицы и вывода на экран. Нужно удалить из матрицы столбец с наибольшей по модулю суммой элементов. ...

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

Матрицы. Программа, которая удаляет столбец матрицы, содержащий максимальный ее элемент - C++
Я новичок в с++...поэтому оооочень нужна Ваша помощь!!! Необходимо написать программу, которая удаляет столбец матрицы, содержащий...


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

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

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