#2
by みけCAT » 2年前
・それぞれの配列を出力しきるまで別の配列を出力しないようにする
・初期化していない部分の値を使わないようにする
などに注意して、出力がイメージ通りになるように直せばいいと思います。
コード:
#include <iostream>
#include <iomanip>
#include <string>
using std::cin;
using std::cout;
using std::setw;
using std::string;
// 表示を開始するべき桁 (0でない最初の桁、または(全部0の場合)最後の桁) の位置を返す
int getDisplayStartPoint(const int num[], int n)
{
for (int i = n - 1; i > 0; i--)
{
if (num[i] != 0)
{
return i;
}
}
return 0;
}
// 値が逆順に格納された配列を1行で出力する
void printArray(const int num[], int n, int width)
{
int start = getDisplayStartPoint(num, n);
for (int i = width - 1; i >= 0; i--)
{
if (i > start)
{
cout << ' ';
}
else
{
cout << num[i];
}
}
cout << '\n';
}
int main()
{
const int n = 50;
string input;
int num[n] = {0};
int value[n] ;
int sum[n];
cout << "入力>";
cin >> input;
cout << "\n";
for (int i = 0; static_cast<unsigned int>(i) < input.length(); i++)
{
value[i] = input[input.length() - 1 - i] - '0';
sum[i] = num[i] + value[i];
}
printArray(num, n, n);
cout << setw(n) << input << "\n";
cout << "---------------------------------------------------\n";
printArray(sum, input.length(), n);
}
実行結果
コード:
入力>
0
123
---------------------------------------------------
123
・それぞれの配列を出力しきるまで別の配列を出力しないようにする
・初期化していない部分の値を使わないようにする
などに注意して、出力がイメージ通りになるように直せばいいと思います。
[code]
#include <iostream>
#include <iomanip>
#include <string>
using std::cin;
using std::cout;
using std::setw;
using std::string;
// 表示を開始するべき桁 (0でない最初の桁、または(全部0の場合)最後の桁) の位置を返す
int getDisplayStartPoint(const int num[], int n)
{
for (int i = n - 1; i > 0; i--)
{
if (num[i] != 0)
{
return i;
}
}
return 0;
}
// 値が逆順に格納された配列を1行で出力する
void printArray(const int num[], int n, int width)
{
int start = getDisplayStartPoint(num, n);
for (int i = width - 1; i >= 0; i--)
{
if (i > start)
{
cout << ' ';
}
else
{
cout << num[i];
}
}
cout << '\n';
}
int main()
{
const int n = 50;
string input;
int num[n] = {0};
int value[n] ;
int sum[n];
cout << "入力>";
cin >> input;
cout << "\n";
for (int i = 0; static_cast<unsigned int>(i) < input.length(); i++)
{
value[i] = input[input.length() - 1 - i] - '0';
sum[i] = num[i] + value[i];
}
printArray(num, n, n);
cout << setw(n) << input << "\n";
cout << "---------------------------------------------------\n";
printArray(sum, input.length(), n);
}
[/code]
[url=https://wandbox.org/permlink/c90hnck9mmSApfsL]実行結果[/url]
[code]
入力>
0
123
---------------------------------------------------
123
[/code]