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

Задание на чтение, вывод в файл - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ олимпиадная задачка про брак на заводе http://www.cyberforum.ru/cpp-beginners/thread695720.html
Уважаемые программисты, вот еще одна задачка из серии олимпиадных. Может, она не такая сложная, но мне, как новичку в программировании, пока сложновато разобраться. Может, у вас будут какие-нибудь идеи, и вы мне подскажете? На заводе статуэтки изготавливаются след. образом. Сначала они полируются, а потом покрываются лаком. Однако ни тот, ни другой процесс полностью не отрегулированы. В...
C++ Вычислить сумму модулей массива Здравствуйте, дорогие форумчане. Нужна ваша помощь. Опять с решением задач. Я две последних решил, а остальные шесть не могу. Не поможете? С меня огроменный плюс. Скрины прикрепил. http://www.cyberforum.ru/cpp-beginners/thread695714.html
Выделение памяти C++
Доброго времени суток. Чтобы выделить память под двумерный массив в такой форме: //n - переменная, M - константа arr = new double ; ... как должно выглядеть объявление указателя arr? P.S. Нужно выделить память для массива с помощью одного оператора new.
Ввод с консоли данных в массив структур C++
Пожалуйста помогите можете написать две программы а то у меня ничего не выходит :cry: они базовые 1)Написать программу, выполняющую следующие действия: • Ввод с консоли данных в массив структур ZNAK; • Вывод на консоль информации о человеке, чья фамилия введена с кон- соли. Если таких людей нет, вывести на консоль соответствующее со-
C++ Найти сумму 2-х наибольших и наименьшего элементов массива http://www.cyberforum.ru/cpp-beginners/thread695689.html
Найти сумму 2-х наибольших и наименьшего элементов массива
C++ Выводим ПРОСТЫЕ числа. Ткните, пожалуйста, пальцем в ошибку Здравствуйте. Подскажите. что не так? Задача: Вывести на экран ПРОСТЫЕ ЧИСЛА в указанном диапазоне. Делала так: прохожусь по всем числам и проверяют остаток от деления на числа меньше (i). Для этого добавила встроенный for. А внутри для исключения случаев типа "4" (нацело не делится на 3, а на 2 делится, т.е. остаток от деления =0 ) добавила if Выводит все подряд.. подозреваю... подробнее

Показать сообщение отдельно
Anpel_171
0 / 0 / 0
Регистрация: 12.11.2012
Сообщений: 24
12.11.2012, 19:59     Задание на чтение, вывод в файл
Прошу о помощи.
Вот задание: "В файле trialin записано матрицу NxN. Найдите ее детерминант. Результат запишите в trialout. Для работы с файлами используйте функции fstream".

С алгоритмом нахождения детерминанта разобрался. Проблемы со считкой из файла.
Размер матрицы определяет, а вот ее ввод неадекватный.

Код:
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
#include <iostream>
#include <cmath>
#include <iomanip>
#include <fstream>
 
using namespace std;
 
double determ(int** Arr, int size);
 
int main()
{
        int size=1;
        int**Arr;
 
         ifstream in("K:\\Lab5\\1\\trialin.txt");
 
        if(!cin)
        {
            cerr << "Input file can not be opened!\n";
            getchar();
            return -1;
        }
 
        while( !in.eof() )
        {
            if( in.get() == '\n' )
            {
                size++;
            }
        }
 
        cout << "Size is " << size << endl;
 
        Arr=new int*[size];
 
        for(int i=0;i<size;++i)
        {
             Arr[i]=new int[size];
        }
 
        for(int i=0;i<size;++i)
        {
             for(int j=0;j<size;++j)
             {
                 in >> Arr[i][j];
             }
             cout << endl;
        }
 
        ofstream out("K:\\Lab5\\1\\trialout.txt");
 
        out<<"Determinant is "<<determ(Arr, size) <<'\n';
 
        for(int i=0;i<size;++i)
        {
                delete[] Arr[i];
        }
        delete[] Arr;
        getchar();
        return 0;
}
 
double determ(int** Arr, int size)   //функция подсчета определителя
{
        int i,j;
        double det=0;
        int** matr;
        if(size==1)
        {
                det=Arr[0][0];
        }
        else if(size==2)
        {
                det=Arr[0][0]*Arr[1][1]-Arr[0][1]*Arr[1][0];
        }
        else
        {
                matr=new int*[size-1];
                for(i=0;i<size;++i)
                {
                        for(j=0;j<size-1;++j)
                        {
                                if(j<i)
                                        matr[j]=Arr[j];
                                else
                                        matr[j]=Arr[j+1];
                        }
                        det+=pow((double)-1, (i+j))*determ(matr, size-1)*Arr[i][size-1];
                }
                delete[] matr;
        }
        return det;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 01:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru