исправить код под условие:
Построить односвязный список значениями элементов которого являются элементы матрицы,
считаны из текстового файла или введены с клавиатуры. Построить новый список, элементами
которого являются элементы транспонированной матрицы. Выделить диагональные элементы матрицы и
записать их в новый список. Напечатать входной и выходные списки.
Построить односвязный список значениями элементов которого являются элементы матрицы,
считаны из текстового файла или введены с клавиатуры. Построить новый список, элементами
которого являются элементы транспонированной матрицы. Выделить диагональные элементы матрицы и
записать их в новый список. Напечатать входной и выходные списки.
C++:
#include <QCoreApplication>
#include <iostream>
#include <QTextCodec>
#include <QTextStream>
#include <fstream>
#include <cstring>
using namespace std;
class List
{
private:
int row; //строка
int col; //столбец
int val; //значение
List *next; // указатель на следующий элемент
List *prev;
public:
//конструктор
/*List (int r, int c, int v): row(r), col(c), val(v)
{
next = NULL;
prev = NULL;
}*/
/*List (const List& L)
{
row = L.row;
col = L.col;
val = L.val;
//next = new List *[];
}*/
List* addelem (List *lst, int r, int c, int v)
{
List *temp, *p;
temp = (List*)malloc(sizeof(List));
p = lst->next; //сохранение указателя на следующий узел
lst->next = temp; //предыдущий узел указывает на создаваемый
temp->row = r;
temp->col = c;
temp->val = v;
temp->next = p; //созданный узел указывает на следующий узел
temp->prev = lst; //созданный узел указывает на предыдущий узел
if (p != NULL)
p->prev = temp;
return temp;
}
//печать списка
void listprint (List *lst)
{
for (int i=0; i<lst->row; i++)
{
for (int j=0; j<lst->col; j++)
cout << lst->val << " ";
cout << endl;
}
}
~List ()
{
delete []next;
delete []prev;
}
};
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QTextStream outStream (stdout,QIODevice::WriteOnly);
outStream.setCodec (QTextCodec::codecForName("cp866"));
outStream << QString("Работа с разряженной матрицей.") << endl << endl;
ifstream fin1 ("C:\\Users\\User\\matr.txt");
if (fin1.is_open())
{
List lst;
int* p;
while (getline(fin1, p, ','))
}
else
outStream << QString("Файл matr.txt не был открыт!") << endl;
return a.exec();
}