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

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

Войти
Регистрация
Восстановить пароль
 
stique
7 / 7 / 0
Регистрация: 02.05.2012
Сообщений: 73
#1

вывод нескольких матриц в файл? - C++

12.06.2012, 00:04. Просмотров 295. Ответов 0
Метки нет (Все метки)

Доброго времени суток, подскажите пожалуйста, что я делаю не так?

В двух словах, смысл программы прост - выявляет квадратные подматрицы, с одинаковыми элементами в углах, но вот при попытке записать эти подматрицы в файл, экзешник зависает, объясните пожалуйста как это все правильно реализовать?

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
136
137
138
139
140
141
142
//______________________________________________________________________________
//_______________ÏÎÄÊËÞ×ÀÅÌÛÅ_ÁÈÁËÈÎÒÅÊÈ________________________________________
#include <iostream>             // ГђГҐГ*ëèçóåò îñГ*îâû ââîäГ* ГЁ âûâîäГ* ÿçûêГ* C++
#include <conio.h>              // ÑîçäГ*ГҐГІ òåêñòîâûé ГЁГ*òåðôåéñ ïîëüçîâГ*òåëÿ
#include <malloc.h>             // Âûäåëÿåò Г*åîáõîäèìîå êîëè÷åñòâî ГЇГ*ìÿòè
#include <stdlib.h>             // Г‡Г*Г*ГЁГ¬Г*ГҐГІГ±Гї âûäåëåГ*ГЁГҐГ¬ ГЇГ*ìÿòè ГЁ ГЄГ®Г*òðîëèðóåò ïðîöåññ âûïîëГ*ГҐГ*ГЁГї ïðîãðГ*ììû
#include <fstream>              // ГђГҐГ*ëèçóåò ГЁГ*ñòðóìåГ*ГІГ» äëÿ ГґГ*éëîâîãî ââîäГ* ГЁ âûâîäГ*
//______________________________________________________________________________
using namespace std;
const int n=10;
const int b=10;
//const int c=-5;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
int random(int n){ return rand() % n; }           // Ââîä Г± ГЄГ«Г*ГўГЁГ*òóðû
void vvod1(int **a, const int n, const int m)
    {   
     int i,j;
     cout << "MaTPuII,A: ("<< n << "*" << m << "):" << endl;
                                for(i = 0; i < n; i++)
                                for(j = 0; j < m; j++)
                                cin >> a[i][j];}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                
     void vvod2(int **a, const int n, const int m) // ÔóГ*êöèÿ äëÿ Г§Г*ïîëГ*ГҐГ*ГЁГї ñëó÷Г*Г©Г*ûìè Г·ГЁГ±Г«Г*ìè
     { 
     int i,j;
     cout << "MaTPuII,A: ("<< n << "*" << m << "):" << endl;
                                for(i = 0; i < n; i++)
                                for(j = 0; j < m; j++)
                                 a[i][j] =5+rand()%8; }   //random(b-c+1) + c;} 
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                
     void vvod3(int **a,const int n, const int m) // Ââîä ГЁГ§ ГґГ*éëГ*
     {FILE *file;
     int i=0,j=0;
  
     if((file=fopen("input.txt","r"))== NULL) // Åñëè ГґГ*éë Г*ГҐ îáГ*Г*ðóæåГ*, âûäГ*ГҐГІГ±Гї îøèáêГ*
      { printf("\n ERROR!!\n");
       exit(1);
      }
         for(i=0;i<n;i++)    // Г·ГІГҐГ*ГЁГҐ ГЁГ§ ГґГ*éëГ*
         for(j=0;j<m;j++)
         fscanf(file,"%d",&a[i][j]);
         { fclose(file);
         }
         }
         int main(){
int n, m,y,min,l;
int s1=0;  int s2=0;
ofstream output;  
output.open("output1.txt");   // îòêðûòèåôГ*éëГ*äëÿçГ*ГЇГЁГ±ГЁ
if (!output){
cout<<"\n Nevozmozhno otkrit file";
exit (1);
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cout << " BBEDuTE PA3MEPHOCTb" << endl;
cout<<"\n Ko/Iu4ECTBO CTPOK : "; 
cin>>n;
cout<<"\n Ko/Iu4ECTBO CTO/I6II,OB: ";
cin>>m;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
int **a; int i, j, i1, j1,nstr; int **e;
 
a = new int* [n];
e = new int* [n];
      if (!a|!e){
            cout<<"Nedostatochno pamati pod massiv ykazatelei\n";
            return 0;}
            for(i = 0; i < n; i++)
            a[i] = new int[m];
            for(i = 0; i < n; i++)
            e[i] = new int[m];
               if (!a[i]|!e[i]){
                 cout<<"Nedostatochno pamati\n";
                 return 0;}
                 cout<< endl <<"BbI6EpuTE C/7OCO6 BBoDa MaTpuII,bI";
                 cout<< endl <<"1 - Bpy4HyIO ";
                 cout<< endl <<"2 - PaHDoMHOE 3A/7OJIHEHuE ";
                 cout<< endl <<"3 - u3 TeKCTOBOrO FAuJIA " << endl;
                 cin>>l;
                 switch(l){ //auai? aaiaa
                      case 1: vvod1(a,n,m); break;
                      case 2: vvod2(a,n,m); break;
                      case 3: vvod3(a,n,m);break;}
                      
                      
                      
                      for(i = 0; i < n; i++){cout<<" "<<"\n"; //i?yiioaieuiay iao?eoa a ii?iaeuiii aeaa
for(j = 0; j < m; j++)  
cout<<a[i][j]<<" ";
}
cout<<"\n";
 
//______________________________________________________________________________
 
                   
 for(i=0;i<n;i++)
     for(j=0; j<m; j++)
         for(y=1; i+y<n && j+y<m; y++)
             if(a[i][j]==a[i][j+y] && a[i][j]==a[i+y][j] && a[i][j]==a[i+y][j+y])
             {
                 cout<<endl<<endl;
                 for(i1=i; i1<=i+y; i1++)
                 {
                     for(j1=j; j1<=j+y; j1++)
                         cout<<a[i1][j1]<<" ";
                     cout<<endl;
               
                 }
                 }
                 //-------------------------------------------------------------
{
cout<<"3aI7ucaTb Pe3yJIbTaT B TeKCTOBbIu FauJI?" << endl;
cout<<" 1 - HET               2 - DA " << endl; ;
cin>>l;
                                                     switch(l){ //âûáîð âûâîäГ*
case 1:{
     output.close();      }break;
case 2:{
for (i1 = i; i1 <= i+y; i1++){output<<"\n";
for (j1 = j; j1 <= j+y; j1++){
output.width(6);  
output.precision(1);                  
output<<a[i1][j1];     }
output<<"\n";}
 
                                                               }
                                                                 }
                                                       }
                                                       
                                                       
                                                       
                                           
 
                              
output.close();      //Г§Г*êðûòèåôГ*éëГ*
system("PAUSE");
return EXIT_SUCCESS;            
for(i = 0; i < nstr; i++)    //ÎñâîáîæäåГ*ГЁГҐГЇГ*ìÿòè
delete []a[i];
delete []a;
return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.06.2012, 00:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос вывод нескольких матриц в файл? (C++):

Вывод нескольких строк в файл - C++
Есть несколько строчек и их нужно записать в файл так, чтобы каждая из них начиналась с новой строки.#include &lt;iostream&gt; #include...

Многопоточная программа. Вывод в общий файл из нескольких потоков - C++
Здравствуйте! Ооочень нужна ваша помощь. Необходимо разработать программу, состоящую из 3 потоков. С функцией -последовательный вывод в...

Считывание нескольких матриц из файла - C++
Зжравствуйте ,помогите с решением такой задачи. Есть файл , в нем хранится матрица.эта матрица считывается в двумерный массив . в...

Считывание нескольких матриц из файла (C) - C++
Всем добрый день. Есть такой вопрос. Имеется текстовый файл, в котором записаны четыре матрицы 4х4, разделенные пустыми строками, как-то...

Текстовый файл состоит из нескольких строк. Записать во второй файл последние символы из каждой строки первого файла - C++
Текстовый файл состоит из нескольких строк. Записать во второй файл последние символы из каждой строки первого файла. === Помогите,...

Форматированный вывод матриц - C++
как сделать красивый вывод матриц 2*2,3*3 ,4*4,5*5?чтоб не в одну строку все выводило.а так: 2*2: a1 a2 a3 a4 3*3: a1 a2 a3 a4...

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

Вывод матриц в консоль - C++
Допустим, имеется три массива-матрицы, над которыми проводятся арифметические действия. Как можно в итоге добиться их вывода в консоль в...

Вывод строк матриц - C++
Как правильно дописать программу? Задана целая прямоугольная матрица размером n×m. Вывести номера строк матрицы, элементы которых...

Заполнение и вывод массива матриц - C++
Здравствуйте. Уважаемые программисты прошу Вашей помощи. Преподаватель задал выполнить лабораторные из методички С.И. Борисова, 2002г....

Бинарные файлы. Файл из матриц - C++
Здравствуйте, прошу помочь с заданием. В файле хранится k матриц размерности n × m . Для каждой матрицы из файла вычислить сумму её...


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

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

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