お元気さまです。わくワークの義(ヨシ)です。
プログラミングスキルアップのため、paixaラーニングで練習問題を解いています。
練習問題は、次のリンクで確認できます。
今回の問題は、簡単にできました。
提出したコードは、次のとおりです。
#include <stdio.h>
int main(void){
char str[1000];
char map[21][22];
int h,w,sy,sx,n,i,j,s,dr,err;
char lr;
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",map[i]);
}
dr=0;
err=0;
map[sy][sx]='*';
for(i=0;i<n;i++){
fgets(str,sizeof(str),stdin);
sscanf(str,"%c %d",&lr,&s);
for(j=s;j>0;j--){
if*1{
sx++;
}
else if*2{
sy++;
}
else if*3{
sx--;
}
else if*4{
sy--;
}
if( sx<0||sy<0||sx==w||sy==h||map[sy][sx]=='#'){
err=1;
break;
}
else {
map[sy][sx]='*';
}
}
if(err==1) break;
if(lr=='R') {
dr++;
if(dr==4) dr=0;
}
else {
dr--;
if(dr<0) dr=3;
}
}
for(i=0;i<h;i++){
printf("%s\n",map[i]);
}
return 0;
}
前回よりは、コンパクトなコードが書けました。
引き続きレベルアップを目指して、練習問題を続けたいと思います。
それでは、今日もワクワクな一日を!
チャオチャオ!