1
私は、main関数の外側のforループでプログラムを持っている:なぜこのforループは停止し続けるのですか?
#include <stdio.h>
void inputMaze(char maze[], int maxX, int maxY);
int main()
{
//Number of columns
int maxX= 0;
//Number of rows
int maxY= 0;
printf("Number of rows? ");
scanf("%d", &maxY);
printf("Number of columns? ");
scanf("%d", &maxX);
if(maxX*maxY>300){
printf("Number of cells exceeds maximum!/n");
}
char maze[maxX][maxY];
inputMaze(maze,maxX, maxY);
return 0;
}
void inputMaze(char maze[], int maxX, int maxY){
int i;
for(i=0; i<maxY; i=i+1){
printf("Input row %d ", i);
scanf(" %c", &maze[i]);
}
}
出力は私にこれを与える:
Number of rows? 10
Number of columns? 10
Input row 0 S#####
Input row 1 Input row 2 Input row 3 Input row 4 Input row 5 Input row 6 D.....
Input row 7 Input row 8 Input row 9
Process returned 0 (0x0) execution time : 11.526 s
Press any key to continue.
私は入力行1入力行2を望んでいない....このように印刷する。私は新しい行に入力行iを印刷し、ユーザーが新しい行を入力できるようにしようとしています。私は問題は、scanfが2D配列に格納することと関係していると思います。私は、迷路、アレイ内の1つの行を一度に書き込まれた後、ライン内の各要素は、1つの文字に取り込まれているが、私はこれを行うように見えることはできませんので、というようにしたいと思います。
ありがとう!だから、基本的に%cを%sに変更しました。これは文字列を自動的に配列として追加しますか?私はMAXXとMAXY 6を作り、7文字の文字列を入力すると、プログラムがクラッシュしないどのように来る/配列は、スペースの不足に?編集:配列でどのように見えるのですか?私は迷路の中で%cを印刷するforループを追加すると、[i]は、それだけで、各ラインの最初のシンボルを印刷すると思われます。 – CoderEH
ここをideoneで実行してリンクを投稿できますか?私は – Sridharan
https://ideone.com/FGjz5t感謝を支援する準備ができています! – CoderEH