NxNサイズの行列(Nは2〜10の数)があり、チェスの部分を置くことができます。 1つのフィールドを1つだけ入れることができます。プログラムはテーブルのサイズを求めて、このようなチェスの位置を求めます。
1ピース:B2
2ピース:C5
3ピース:D2
...
ユーザが「X」を入力して、ループから出ることができる最後のピースの後。複数の値をスキャンして配列に追加する方法は?
私の問題は、私はこのように1列にすべてのデータを置く必要があるということです。
char position[100] = {B2C5D2}
は、これは私が使用しようとした関数にコードです:
char inputPosition(char position[]) {
int i = 0;
do {
printf("%d. piece: ", i+1);
scanf("%s", &position[i]);
i++;
}while(position[i-1]!='x');
return position;
}
出力ルックスこのように:
BCDx
(B2C5D2のために)私はscanf関数を使用すべきかわからないとプログラムは、valのを取得するべきではありませんue xをパラメータとして使うが、私は何をすべきか分からない。
編集:私の例では、位置が有効かどうかは関係ありません。また、char位置の最大入力を編集しました。 (私が使用しなければならない最大の変数は約10です)私の本当の問題は、スペースなしですべての位置[i]を1つの配列に入れることができないことです。
あなたが読む必要はありません'&position [2 * i]'に移動しますか?また、 '%s'の代わりに' '%2c" 'を使わない限り、20文字の配列に9つの位置しか格納できません。あなたはまだ位置のための10対の文字でヌル終端の文字列を持っていないでしょう。あなたはポジションが有効であることもチェックしていません。 –