2017-09-21 12 views
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つの文字に取り込まれているが、私はこれを行うように見えることはできませんので、というようにしたいと思います。

答えて

1

問題は

のscanf( "%cの"、&迷路[i])と、この文です。

あなたは間違っている文字単位で読み取るしようとしています。 maxY行は文字列として読み込む必要があります。私はここに作業コードを作りました。

#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\n", i); 
     scanf("%s", &maze[i]); 

} 
} 

さらに詳しい情報が必要な場合は、お気軽にコメントしてください。

+0

ありがとう!だから、基本的に%cを%sに変更しました。これは文字列を自動的に配列として追加しますか?私はMAXXとMAXY 6を作り、7文字の文字列を入力すると、プログラムがクラッシュしないどのように来る/配列は、スペースの不足に?編集:配列でどのように見えるのですか?私は迷路の中で%cを印刷するforループを追加すると、[i]は、それだけで、各ラインの最初のシンボルを印刷すると思われます。 – CoderEH

+0

ここをideoneで実行してリンクを投稿できますか?私は – Sridharan

+0

https://ideone.com/FGjz5t感謝を支援する準備ができています! – CoderEH

関連する問題