5×5の行列で〇がまわり4方向の値を4で割った値になる下のようなプログラムを書きたいです。
300 300 300 300 300
300 〇 〇 〇 300
300 〇 1200 〇 300
300 〇 〇 〇 300
300 300 300 300 300
実際に書いた結果
300 300 300 300 300
300 150 412 253 300
300 412 1200 438 300
300 253 438 369 300
300 300 300 300 300 という結果になりました。
正しくは
300 300 300 300 300
300 450 600 450 300
300 600 1200 600 300
300 450 600 450 300
300 300 300 300 300という値になるはずなのですが
反復計算が足りないと思うんですが、どのように変更したら反復回数を設定することができますか?
実際に書いたプログラムは
#include <stdio.h>
#define M 5
#define N 5
int main(void) {
/* 4行5列の行列 */
int mat[5][5];
int y, x;
for(y=0;y<5;y++){
for(x=0;x<5;x++){
mat[y][x]=0;
}
}
for(y=2;y<3;y++){
for(x=2;x<3;x++){
mat[y][x]=1200;
}
}
for(y=0;y<5;y++){
for(x=0;x<5;x++){
mat[y][x]=0;
if(x==0 || x == 4 || y==0 || y==4 ){
mat[y][x]=300;
}
}
}
for(y=0;y<5;y++){
for(x=0;x<5;x++){
}
}
for(y=0;y<5;y++){
for(x=0;x<5;x++){
mat[y][x]=0;
if( x==0 || x == 4 || y==0 || y==4 ){
mat[y][x]=300;
}
}
}
for(y=0;y<5;y++){
for(x=0;x<5;x++){
if(x==2&&y==2){
mat[y][x]=1200;
}
}
}
for(y=0;y<5;y++){
for(x=0;x<5;x++){
if( x!=0 && x != 4 && y!=0 && y!=4 ){
mat[y][x]=(mat[y-1][x]+mat[y+1][x]+mat[y][x-1]+mat[y][x+1])/4;
}
if(x==2&&y==2){
mat[y][x]=1200;
}
}
}
for(y=0;y<5;y++){
for(x=0;x<5;x++){
printf( "%3d ", mat[y][x]);
}
printf("\n");
}
return 0;
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- C言語・C++・C# プログラミング c言語 4 2023/03/07 01:05
- C言語・C++・C# 並列プログラミングのπ計算について 1 2022/07/16 22:30
- C言語・C++・C# LU分解法のピボッティングについて(C言語/gcc-9) 3 2022/07/11 23:10
- C言語・C++・C# LU分解法のピボット選択機能実装について(C言語・gcc-9) 1 2022/07/22 15:20
- C言語・C++・C# C 言語の Gauss Jordan 法について 2 2022/12/28 11:16
- C言語・C++・C# 10個の実数に対する降順ソート結果を出力するプログラムを作りたいのですが、以下のプログラムをどう直せ 1 2022/07/09 22:16
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- C言語・C++・C# プログラミング実行後に表示される値を答えよ #include <stdio.h> void main 4 2022/05/28 10:20
- その他(プログラミング・Web制作) 十進BASICでの再帰についての質問です。 2 2022/11/18 09:17
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・2024年に成し遂げたこと
- ・3分あったら何をしますか?
- ・何歳が一番楽しかった?
- ・治せない「クセ」を教えてください
- ・【大喜利】看板の文字を埋めてください
- ・【大喜利】【投稿~12/17】 ありそうだけど絶対に無いことわざ
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・【穴埋めお題】恐竜の新説
- ・我がまちの「給食」自慢を聞かせてっ!
- ・冬の健康法を教えて!
- ・一番好きな「クリスマスソング」は?
- ・集合写真、どこに映る?
- ・自分の通っていた小学校のあるある
- ・フォントについて教えてください!
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・10代と話して驚いたこと
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
シェルピンスキーのギャスケット
-
C言語 エラーの原因がわからな...
-
【C++】関数ポインタの使い方
-
acceptをalarmでタイムアウトさ...
-
因数分解を行うプログラムについて
-
(マルチスレッド)_beginthrea...
-
std::set<int> で、ある値が何...
-
C言語での引数の省略方法
-
異なる文字列のマッチングを、D...
-
構造体のメンバ変数が途中で変...
-
ファイルから読みこむ方法
-
毎回違う乱数を生成するにはど...
-
「指定されたキャストは有効で...
-
ヒープ木の格納 【プログラミ...
-
C言語 巡回セールスマン問題 2-...
-
プログラミング
-
ColorをRGBで指定する方法
-
フィボナッチ数列のプログラム
-
商と剰余を同時に求める(C言語)
-
C言語でif文が予想と違う動きを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「指定されたキャストは有効で...
-
C言語での引数の省略方法
-
複数桁10進数の*桁目だけを抽出...
-
C言語 エラーの原因がわからな...
-
#define _CRT_SECURE_NO_WARNIN...
-
ラップ関数とはどんなものですか?
-
【C++】関数ポインタの使い方
-
if と配列の組み合わせ
-
(int *)の意味
-
実数の整数部,小数部の取得
-
acceptをalarmでタイムアウトさ...
-
C言語
-
std::set<int> で、ある値が何...
-
因数分解を行うプログラムについて
-
数字列を3桁ごとにカンマで区切...
-
(マルチスレッド)_beginthrea...
-
比較回数と交換回数表示について
-
式は定数値が必要です」という...
-
int型の変数値をバイト列として...
-
c言語の配列を使ってサイコロを...
おすすめ情報