• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

c++ исправить код

Iryna

New member
21.12.2020
2
0
BIT
0
исправить код под условие:

Построить односвязный список значениями элементов которого являются элементы матрицы,
считаны из текстового файла или введены с клавиатуры. Построить новый список, элементами
которого являются элементы транспонированной матрицы. Выделить диагональные элементы матрицы и
записать их в новый список. Напечатать входной и выходные списки.


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();
}
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!