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
| #include <iostream>
#include <conio.h>
#include <iomanip>
#include <fstream>
using namespace std;
void main()
{
setlocale (LC_ALL, "Russian");
int *m,**arr,n,k,f=0;
cout<<"Введите количество строк,столбцов"<<endl;
cin>>n;
cin>>k;
m=new int [n*k];
arr=new int *[n];
for(int i__1=0;i__1<n;i__1++)
arr[i__1]=new int[k];
//цыкл ввода матрицы
for(int i = 0; i < n; i++)
for(int j = 0; j < k; j++)
{
cout << "Введите элемент матрици М[" << i + 1 << "][" << j + 1 << "]\n";
cin >> arr[i][j];
}
//переписование в одноменрый масив
for(int i=0;i<n;i++)
for(int j=0;j<k;j++)
{
m[f]=arr[i][j];
f++;
}
//сортировка по возростанию
int trash = 0,count=n*k;
for (int i = 0; i < count; i++)
for (int j = 0; j < count - i - 1; j++)
if (m[j] > m[j+1])
{
trash = m[j];
m[j] = m[j + 1];
m[j + 1] = trash;
}
//вывод отсортированого одномерного масива
for(int i = 0; i < count; i++)
cout << m[i] << ", ";
cout << endl;
//
f=0;
int n_i=n, n_j=k, ii=0, jj=0;
while(f<count)
{
for(int j=jj; j<n_j; j++)
arr[ii][j]=m[f++];
ii++;
for(int i=ii; i<n_i; i++)
arr[i][n_j-1]=m[f++];
n_j--;
for(int j=n_j-1; j>=jj; j--)
arr[n_i-1][j]=m[f++];
n_i--;
for(int i=n_i-1; i>=ii; i--)
arr[i][jj]=m[f++];
jj++;
}
cout << endl << endl;
for(int i=0; i<n; i++)
{
for(int j=0; j<k; j++)
cout<<arr[i][j]<<" ";
cout<<endl;
}
std::fstream ofs("test.txt");
for(size_t i = 0; i < 3; ++i)
{
for(size_t j = 0; j < 3; ++j)
ofs << arr[i][j] << ' ';
ofs << '\n';
}
_getch();
} |
|
надо всего лишь вместо ofstream написать fstream

но зато у тебя не работает составление матрицы спиралькой)