私によると、コード自体は問題ありません。私はそれを1行ずつデバッグしようとしましたが、予期せずこのコードによって実行時エラーが発生し、このコードによってこのようなエラーが発生する理由を理解できませんでした。私がここで使用した文字列関数を誰かが調べてもらえますか?可能であれば、このプログラムで実行時エラーが発生する理由を教えてください。このコードのideoneリンクはhttp://ideone.com/LyFTWuです。
#include<stdio.h>
#include<string.h>
using namespace std;
int main()
{
int t,i;
//printf("md");
scanf("%d",&t);
for(i=0;i<t;i++)
{
int n,j,k,f,g=0;
char a[50][57],c[50];
//printf("me");
scanf("%d",&n);
//printf("%d",n);
//m=getchar();
//printf("me\n");
getchar();
for(j=0;j<n;j++)
{
k=0;
while(1)
{
a[j][k]=getchar();
//printf("%c",a[j][k]);
if(a[j][k]=='\n') break;
k++;
}
//printf("me\n");
}
for(j=n-1;j>=0;j--)
{
k=0;
g=0;
if(j==n-1)
{
printf("Begin ");
}
else if(a[j+1][0]=='L')
{
printf("Right ");
}
else if(a[j+1][0]=='R')
{
printf("Left ");
}
while(1)
{
while(a[j][k]!='o'&&g==0)
{
k++;
}
g=1;
//printf("me");
if(a[j][k]=='\n') break;
printf("%c",a[j][k]);
k++;
}
printf("\n");
}
}
return(0);
}