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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.64
legend
28 / 27 / 0
Регистрация: 17.11.2010
Сообщений: 152
#1

Разряженная матрица - C++

12.07.2011, 23:59. Просмотров 1420. Ответов 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
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
131
132
133
134
135
#include "iostream"
#include "conio.h"
#include <Windows.h>
 
 
 using namespace std;
 
 struct mas
 {
 int A;
 int LJ;
 int KK;
 mas *next;
 };
 
 
 int create(mas*, int*, int, int); 
 void print(mas*, int*, int, int);
 
 
 int main()
 {
 int m,n,num,*LI,k;
 mas *X;
 
 cout<<"Enter number of rows and columns: ";
 cin>>m>>n;
 X=new mas;
 LI=new int[m+1];
 
 cout<<endl<<"~~~~~~~~~~~~~~~~~~~"<<endl<<endl;
 
 num=create(X,LI,m,n);
 
         cout<<"\nYour matrix:\n";
 print(X,LI,m,n);
 system ("pause");
 return 0;
 }
 
 
 
 
 
 int create(mas *X, int *LI, int m, int n)//функция создания матрицы
 {
 int i,j,num,k,f;
 mas *z=X,*p,*q, *lol;
 num=0;
 z->A=0;
 lol=z;
 p=z;
 q=z;
 
 cout<<"Enter your matrix:\n";
 for (i=0;i<m;i++)
 {
         f=0;
         for (j=0;j<n;j++)
         {
             cin>>k;
             if (k!=0) 
             {
                 if (f==0)
                 {
                     LI[i]=num;
                     f=1;
                 }
 
 
                 if(!z->A) //если вводится самый первый элемент
                 {
                     z->A=k;
                     z->LJ=j;
                     z->next=0;
                     z->KK = i;
                     num++;
                 }
                 else
                 {
                     z->next=new mas;
                     z=z->next;
                     z->A=k;
                     z->LJ=j;
                     z->next=0;
                     z->KK=i;
                     num++;
                 }
             }
         }
 
 } 
 cout<<"\n";
 while (p!=0)
 {
 cout<<p->A<<" "; //вывод ненулевых элементов
 p=p->next;
 }
 cout<<"\n j = \n";
 while (q!=0)
 {
 cout<<q->LJ<<" "; //вывод индекса j каждого ненулевого элемента
 q=q->next;
 }
 cout<<"\n i = \n"; // vivod  I pozicija
 while (lol!=0)
 {cout<<lol->KK<<" ";
 lol=lol->next;}
 cout<<"\n";
 LI[m]=num;
//for (i=0;i<=m;i++)
 //cout<<LI[i]<<" "; //вывод LI(местоположения 1 ненул. эл—та в каждой строке)
 return num;
 }
 
 void print(mas *X,int *LI, int m, int n) //функция вывода матрицы
 {
 mas *p;
 p=X;
 int i,j,k,f;
 for (i=0; i<m; i++)
 {
 f=LI[i+1]-LI[i]; // число ненулевых элементов в строке
 k=0;
 for (j=0; j<n; j++)
 if ((p->LJ==j)&&(k<f))
 {
 cout<<p->A<<" ";
 if(p->next) p=p->next;
 k++;
 }
 else cout<<"0 ";
 cout<<"\n";
 }
 }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.07.2011, 23:59
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Разряженная матрица (C++):

Разряженная матрица - C++
Экономное использование памяти предусматривает, что для тех элементов матрицы, в которых наверняка содержатся нули, память выделяться не...

Разряженная Матрица - C++
Разряженная Матрица общего вида.Найти сумму её элементов

Как создать Разряженная Ленточная матрица - C++
Как создать разряженную ленточную матрицу, так что бы мы вводили только Например 1, 2, 3, и получали: 100 020 030 я нашел...

Дана разряженная ленточная матрица. Найти сумму её элементов. - C++
Дана разряженная ленточная матрица. Найти сумму её элементов. Не разобрался я с этими матрицами еще, а сроки к сдаче. Может кто помочь?

дана квадратичная матрица z[n][n]. составить программу, которая если матрица симметричная(транспонированная матрица равна исходной), сделает ее не сим - C++
помогите пожалуйста. условие: дана квадратичная матрица z. составить программу, которая если матрица симметричная(транспонированная...

Дана матрица целых чисел, из n строк и n столбцов (n < = 100).Определить является ли матрица нулевой (состоит из одних нулей) - C++
#include &lt;iostream.h&gt; #include &lt;iomanip.h&gt; #include&lt;conio.h&gt; void main() { int mas; int N; int max_element; int...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Jupiter
13.07.2011, 00:36     Разряженная матрица
  #2

Не по теме:

Разреженная матрица

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.07.2011, 00:36
Привет! Вот еще темы с ответами:

Дана матрица целых чисел, из n строк и n столбцов (n < = 100).Определить является ли матрица нулевой (состоит из одних нулей) - C++
#include &lt;iostream.h&gt; #include &lt;iomanip.h&gt; #include &lt;stdlib.h&gt; int main(int argc, char* argv) { srand(time(NULL)); int mas; ...

Даны квадратная матрица A порядка n и вектор с n элементами. Получить вектор: (A=E)b, где E единичная матрица порядка n - C++
Даны квадратная матрица A порядка n и вектор с n элементами. Получить вектор: (A=E)b, где E-единичная матрица порядка n. Помогите...

Определить базовый класс "Матрица" и класс-потомок "Треугольная матрица" - C++
Нужно определить класс &quot;матрица&quot; с возможностью динамического выделения и освобождения памяти, наполнения матрицы, сохранения и чтения из...

Дана квадратная матрица А порядка n. Проверить, является ли матрица единичной. - Turbo Pascal
Ребят,помогите решить задачу &quot;Дана квадратная матрица А порядка n. Проверить, является ли матрица единичной&quot;


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

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

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