c言語の質問です。
5×5の行列で
300 300 300 300 300
300 〇 〇 〇 300
300 〇 1200 〇 300
300 〇 〇 〇 300
300 300 300 300 300
の形の行列を作りたいです。
〇は周り4方向の値を足したものを4で割った値にしたいです。
実際にプログラムを書いた結果が
300 300 300 300 300
300 150 0 150 300
300 0 1200 0 300
300 150 0 150 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 && (x!=2&&y!=2)){
mat[y][x]=(mat[y-1][x]+mat[y+1][x]+mat[y][x-1]+mat[y][x+1])/4;
}
}
}
for(y=0;y<5;y++){
for(x=0;x<5;x++){
printf( "%3d ", mat[y][x]);
}
printf("\n");
}
return 0;
}
if分のx=2かつy=2のときの表し方がよくない気がするのですがどこが問題か分かる方いらっしゃいませんか?
また反復計算の反復回数はどうやったら指定できるのですか?
この計算をexcelでやったときとくらべて、〇の値が小さいので反復回数が足りていないと思います。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
この問題
https://oshiete.goo.ne.jp/qa/13693773.html
と全くと言って良い程同じ。
取り立てて新しいモノもないし、これも本質的には「連立方程式を解け」と言う一文で要約出来る。
それだけ。
> この計算をexcelでやったときとくらべて、〇の値が小さいので反復回数が足りていないと思います。
そうじゃなくって、最初に手計算ででも何でも、解を求めてみたらいいじゃない。
「不確かな情報のまま不確かに解く」程無駄な事はない。
上のページでも書いたけど、Maxima辺りを使えば簡単に結果は見れる。
Maxima:
https://maxima.sourceforge.io/
このソフトは方程式を解いてくれる「数式処理システム」と言われるジャンルのソフトウェアで、それこそ大学の数学でも役立ってくれる「大学生の必需品」だ。
実装例:
https://www.ideone.com/kfIGZ2
No.1
- 回答日時:
&& (x!=2&&y!=2)
これだと、括弧の意味がなく、
&& x != 2 && y !=2
と同等で、つまり、x = 2の時や、y = 2の時は偽になるので、mat[y][x]へ代入されません。
なので、1200の上下左右には、値が代入されなくなります。
質問者さんがやりたいのは、x = 2 でかつ y = 2の時に、偽になるような論理式を作ればいいだけです。
必ず収束するのであれば、反復計算は、計算前と、計算後の値が全て変化がないか、近似値の条件に一致すれば終了すればいいと思います。
お探しの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
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- C言語・C++・C# プログラミング実行後に表示される値を答えよ #include <stdio.h> void main 4 2022/05/28 10:20
- C言語・C++・C# プログラミングのペーパーテスト 実行結果の表示を答えてください #include <stdio.h> 2 2022/07/09 16:14
- その他(プログラミング・Web制作) 十進BASICでの再帰についての質問です。 2 2022/11/18 09:17
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
これなにがちがうんですか??
C言語・C++・C#
-
C言語について。
C言語・C++・C#
-
C言語って古いですか?
C言語・C++・C#
-
-
4
プログラミング言語の制作方法について
C言語・C++・C#
-
5
こんなことてしますか??
C言語・C++・C#
-
6
c言語
C言語・C++・C#
-
7
どなたかこのプログラミングを完成させて欲しいです。 ヒントはこちらです↓ 青色:ゲームプログラムのル
C言語・C++・C#
-
8
c言語
C言語・C++・C#
-
9
c言語
C言語・C++・C#
-
10
Javaって使いますか、もう古いですか?C++とどっちがいいですか?分析でC++使う授業ありましたけ
C言語・C++・C#
-
11
C言語関数違いについて。
C言語・C++・C#
-
12
C言語について
C言語・C++・C#
-
13
gcc13.2のバグ?
C言語・C++・C#
-
14
VisualStudio2022でC言語プログラムで全角文字を使用すると不明なエラーが表示される
C言語・C++・C#
-
15
C言語の関数と配列に関する質問
C言語・C++・C#
-
16
double型が正常に認識されていない恐れ
C言語・C++・C#
-
17
C言語 配列と関数の練習問題
C言語・C++・C#
-
18
[C言語]fputsとfprintfの違い
C言語・C++・C#
-
19
C言語について。
C言語・C++・C#
-
20
C言語 バッファについて。
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
c言語
-
五目並べ
-
!(否定)演算子について
-
アセンブラの間接アドレッシング
-
if文について教えてください
-
収束計算
-
繰り返し1行~28行までを順順に...
-
H8マイコン C言語でのプロ...
-
ダイナミックプログラミング
-
Excel・Word リサーチ機能を無...
-
UserForm1.Showでエラーになり...
-
Excel マクロ VBA プロシー...
-
合計3TBのデータのハッシュ値を...
-
特定のPCだけ動作しないVBAマク...
-
エクセルで特定の列が0表示の場...
-
メッセージボックスのOKボタ...
-
配列数式の解除
-
VBAでfunctionを利用しようとし...
-
教えて下さい
-
マクロの連続実行
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
繰り返し1行~28行までを順順に...
-
c言語
-
MATLABにおける行の挿入方法
-
H8マイコン C言語でのプロ...
-
C言語で余りがマイナスになる場合
-
!(否定)演算子について
-
フォートランで行列の計算
-
パイソンのプログラミングにつ...
-
cのプログラミングで虚数を含...
-
ダイナミックプログラミング
-
StandardMLで整数リストの奇数...
-
一般次元の逆行列を求めるプロ...
-
MATLABの参考書
-
Pythonの公式リファレンスガイド
-
MATLABからCへ
-
MATLABのfor文の使い方について
-
OPENCVを使ったエピポーラ幾何...
-
Excel・Word リサーチ機能を無...
-
特定のPCだけ動作しないVBAマク...
-
配列数式の解除
おすすめ情報