お元気さまです。わくワークの義(ヨシ)です。
プログラミングスキルのレベルアップを目指して、paizaラーニングで練習問題を解いています。
練習問題は、次のリンクで確認できます。
そんなに難しくないという感触で、提出しましたが・・・
50点でした・・・
何度か見直したのですが、何が悪いのかわかりませんでした。
提出したコードは、次のとおりです。
#include <stdio.h>
int main(void){
char str[1000];
char buf[21][22];
char lr;
int h,w,sy,sx,n,i,dr;
fgets(str, sizeof(str), stdin);
sscanf(str,"%d %d %d %d %d",&h,&w,&sy,&sx,&n);
for(i=0;i<h;i++){
fgets(str,sizeof(str),stdin);
sscanf(str,"%s",buf[i]);
}
dr = 0;
for(i=0;i<n;i++){
fgets(str,sizeof(str),stdin);
sscanf(str,"%c",&lr);
if( lr=='R'){
switch(dr){
case 0:
sx++;
dr++;
break;
case 1:
sy++;
dr++;
break;
case 2:
sx--;
dr++;
break;
case 3:
sy--;
dr=0;
break;
}
}
else{
switch(dr){
case 0:
sx--;
dr=3;
break;
case 1:
sy--;
dr--;
break;
case 2:
sx++;
dr--;
break;
case 3:
sy++;
dr--;
break;
}
}
if( sx<0 || sy<0 || sx==w || sy==h ){
printf("%s\n", "Stop");
return -1;
}
else if( buf[sy][sx]=='#'){
printf("%s\n", "Stop");
return -1;
}
else{
printf("%d %d\n",sy,sx);
}
}
return 0;
}
そのうち理由がわかるだろうということで、スキップして次の問題をやってみます。
それでは、今日もワクワクな一日を!
チャオチャオ!