C++複数行をスペースで区切った数を入力して配列にし、2 D配列を動的に申請する
2485 ワード
#include
#include
#include
using namespace std;
//
void input_n_m(int a[])
{
char c;
int i = 0;
while ((c = getchar()) != '
')
{
if (c != ' ')
{
ungetc(c, stdin);
cin >> a[i++];
}
}
//++++ asscii .......
}
//
void input_num(vector circuit_column, vector& circuit_num)
{
vector tem;
tem = circuit_column;
char c;
int i = 0;
while ((c = getchar()) != '
')
{
if (c != ' ')//
{
ungetc(c, stdin);
cin >> tem[i++];
}
}
//++++ asscii .......
//
circuit_num.insert(circuit_num.end(), tem.begin(), tem.end());
tem.clear();
}
int main()
{
int n = 0; //
int m = 0; //
int a[2] = { 0 };
//1
cout << " 0 1000" << endl;
input_n_m(a);
n = a[0];
m = a[1];
// ?
for (auto i : a)
{
cout << i << endl;
}
//2,
vector circuit_column(m);
vector circuit_num;
for (size_t i = 0; i < n; i++)
{
cout << " " << m << " " << endl;
input_num(circuit_column, circuit_num);
}
for (auto i : circuit_num)
{
cout << i << endl;
}
//3
int **B;
B = new int*[n];
for (int i = 0; i < n; i++)
B[i] = new int[m];
int k = 0;
for (size_t i = 0; i < n; i++)
{
for (size_t j = 0; j < m; j++)
{
B[i][j] = circuit_num[k];
k++;
}
}
cout << "--------------------B-------------------" << endl;
for (size_t i = 0; i < n; i++)
{
for (size_t j = 0; j < m; j++)
{
cout << B[i][j] << " ";
}
cout << endl;
}
int **A;
A = new int*[n];
for (int i = 0; i < n; i++)
A[i] = new int[m];
for (size_t i = 0; i < n; i++)
{
for (size_t j = 0; j < m; j++)
{
if (B[i][j] == 1)
{
A[i][j] = 1;
}
else
A[i][j] = 0;
}
}
cout << "--------------------A-------------------" << endl;
for (size_t i = 0; i < n; i++)
{
for (size_t j = 0; j < m; j++)
{
cout << A[i][j] << " ";
}
cout << endl;
}
//
for (int i = 0; i < n; i++)
{
delete[] A[i];
delete[] B[i];
}
delete[] A;
delete[] B;
system("pause");
return 0;
}