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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Сложение в матрице http://www.cyberforum.ru/cpp-beginners/thread332443.html
Нужно сложить в матрице отдельно каждый столбец и каждую строчку как я понял что то на подобе функции математической суммы в экселе к примеру 1 2 3 4 5 15 2 4 6 3 3 18 3 6 9...
C++ Файл о студентах Здравствуйте, форумчане! Дана такая задача: Создать файл, содержащий сведения о том, какие из 5 предложенных дисциплин желает слушать студент. Структура записи: фамилия студента; № группы;... http://www.cyberforum.ru/cpp-beginners/thread332436.html
C++ НУЖНА БЛОК-СХЕМА К ПРОГРАММЕ
НУЖНА БЛОК-СХЕМА К ПРОГРАММЕ
C++ Формула для нахождения третей вершыны равностороннего триугольника
помогите пожалуста найти формулу для нахождения третей вершыны в декартовой системе координат тоесть известно к примеру x1,y1, и x2,y2 и найти x3,y3 Прекращайте дублировать темы!
C++ Строчные буквы строки преобразуйте в прописные и отсортируйте в алфавитном порядке http://www.cyberforum.ru/cpp-beginners/thread332405.html
с клавиатуры вводится строка. выберите из нее все буквы А(а) до I(i) . строчные преобразуйте в прописные и отсортируйте в алфавитном порядке
C++ файл!!! Нужна помощь в создании файла на простом языке СИ. Буду благодарен. Дан файл произвольного типа. Создать его копию с новым именем. подробнее

Показать сообщение отдельно
legend
28 / 27 / 0
Регистрация: 17.11.2010
Сообщений: 152

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

12.07.2011, 23:59. Просмотров 1478. Ответов 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";
 }
 }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru