私は、ユーザの入力に基づいて列を読み出す配列プログラムを持っています。配列に空のフィールドがあると、何とかエラーが出ます。例えば、私が単語helloworlで読んだ場合、私のプログラムは動作します。しかし、もし私がhellowordで読むと、私のプログラムは最後の文字dを出力しません。私は解決する方法を見つけることを試みる日を過ごす、私は誰かが私を助けてくれることを願っています。ありがとうございました。C++ 2D配列のバグ
出力はhlodworlwlである必要があります。今、最後の行が見つからないように見える。
もう1つ、私のプログラムはユーザーの入力を受け取り、配列をソートして出力します。私はどのようにプログラムを誤って123 321 213など(論理的に)と111 22 134のようなユーザータイプを確認することができますか?
私はHelloWorldの中で読んで、ユーザーは123を入力した場合、私の2D配列は、出力がhlodworlwlあるべき
hel
low
orl
d
でなければなりません。今、最後の行が見つからないように見える。
もう1つ、私のプログラムはユーザーの入力を受け取り、配列をソートして出力します。私はどのようにプログラムを誤って123 321 213など(論理的に)と111 22 134のようなユーザータイプを確認することができますか?もう一度
hel low orl
#include <iostream>
#include <string>
using namespace std;
char array[5][5];
//function that prints the column c of the array
void printArray(int c)
{
for(int i=0; i<3; i++)
{
cout << array[i][c];
}
}
int main() {
string alphabate;
string a="helloworld";
for(int i=0; i<3; i++)
{
for(int j=0; j<3; j++)
{
array[i][j] = a[j+ (i * 3)];
}
}
cout << "Enter some alphabate:";
cin >> alphabate;
//checking the input parameters
for (int j=0; j<3; j++) {
if (alphabate[j] == '1' || alphabate[j] == 'a')
{
printArray(0);
}
else if (alphabate[j] == '2' || alphabate[j] == 'b')
{
printArray(1);
}
else if (alphabate[j] == '3' || alphabate[j] == 'c')
{
printArray(2);
}
}
return 0;
}
、私の問題を通じてお読みいただきありがとうございました。
* "出力はhlodworlwlでなければなりません。このhlodworlwl" *のように表示されますが、この2つの出力は同じです。私は何かが欠けていますか? –
私はあなたのプログラムが何をすべきか本当に分かりませんが、私はあなたのdelcarationを次のように見ています: 'char array [3] [3];'、 '9'文字を保持することができます。 「d」は「10」文字を有する。 – PcAF
私はso sooryみんな、私は睡眠を奪っているので、私は多くの間違いをして説明が不足しています。 2番目の "hlodworlwl"は遅くなるはずです。 @ bkVnet私は配列[5] [5]の前で使ってみましたが、空のそれらのためにガベージ値を得ることになりました。どのように私はそれを解決するのですか? – Bhappy