//解決しました!!!完成コード載せておきます。みなさん回答ありがとうございました。
今高校生なのですが、アルゴリズム検定に挑戦しようと思い過去問に取り組んでいました。
https://atcoder.jp/contests/past202010-open/tasks/past202010_c
↑こちらの問題について質問です。
自力でプログラミングを行ったところ、出力結果が一致しませんでした。
c言語
1// "%c"による文字列スキャン時の改行文字除外機能つき 2#include<stdio.h> 3int main(void){ 4 int i,j,tate,yoko,count[1000][1000]; 5 char c[1000][1000]; 6 scanf("%d",&tate); 7 scanf("%d",&yoko); 8 for(i=1;i<=tate;i++){ 9 for(j=1;j<=yoko;j++){ 10 scanf("%c",&c[i][j]); 11 if(c[i][j]=='\n'){ 12 j--; 13 } 14 } 15 } 16 for(i=1;i<=tate;i++){ 17 for(j=1;j<=yoko;j++){ 18 count[i][j]=0; 19 if(c[i][j]=='#'){ 20 count[i][j]++; 21 } 22 if(c[i][j+1]=='#'&&j+1!=yoko+1){ 23 count[i][j]++; 24 } 25 if(c[i][j-1]=='#'){ 26 count[i][j]++; 27 } 28 if(c[i+1][j]=='#'&&i+1!=tate+1){ 29 count[i][j]++; 30 } 31 if(c[i-1][j]=='#'&&i-1!=0){ //ここまでたてよこ 32 count[i][j]++; 33 } 34 if(c[i-1][j-1]=='#'&&i-1!=0&&j-1!=0){ 35 count[i][j]++; 36 } 37 if(c[i+1][j-1]=='#'&&i+1!=tate+1&&j-1!=0){ 38 count[i][j]++; 39 } 40 if(c[i+1][j+1]=='#'&&i+1!=tate+1&&j+1!=yoko+1){ 41 count[i][j]++; 42 } 43 if(c[i-1][j+1]=='#'&&i-1!=0&&j+1!=yoko+1){ 44 count[i][j]++; //ここまでななめ 45 } 46 printf("%d",count[i][j]); 47 } 48 printf("\n"); 49 } 50 return 0; 51}
これが作成したプログラムとなります。C言語で作成しました。
よろしければ、誤りを教えてくださるとうれしいです。
回答2件
あなたの回答
tips
プレビュー