
C言語でDxlibを使って3x3の奇数魔法陣を作っているのですが、処理の方法がわかりません。
youso[3][3]の箱を作りました。
これを全部for文を使って0で初期化もしました。
最後に画面に表示させるのもfor文を使ってできました。
この真ん中のメインの数字を格納するプログラムで、for文とif文を使って作りたいのですが考えてもわかりません。
youso[0][1]に1を代入してから作ります
1〜9の数字当てはめるために変数countも作ってます。
1より右上に数値を格納していくのですが、右へはみ出すとはみ出した行の最左、上へはみだすと、はみ出した列のの最下、埋まっている場合if( 0 != ???)元の位置の真下、 下へはみ出した時は同列の最上へ。
ここまでは考えましたがわからないです。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
/* 5 x 5 魔方陣のケース */
#include <stdio.h>
#include <stdlib.h>
#define N 5
int main(void) {
int magic_square[N][N] = {{0, 0, 0, 0, 0},
{0, 0, 0, 0, 0},
{0, 0, 0, 0, 0},
{0, 0, 0, 0, 0},
{0, 0, 0, 0, 0}};
int i = 0, j = 2, NUM = 1;
int tmp_i, tmp_j;
while (NUM < N * N + 1) {
magic_square[i][j] = NUM;
tmp_i = (i - 1 < 0 ? N - 1 : i - 1);
tmp_j = (j + 1 == N ? 0 : j + 1);
if (magic_square[tmp_i][tmp_j] != 0) {
tmp_i = i + 1, tmp_j = j;
}
i = tmp_i, j = tmp_j, NUM++;
}
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
printf("%2d ", magic_square[i][j]);
}
printf("\n");
}
return EXIT_SUCCESS;
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- Excel(エクセル) VBAで組み合わせ算出やCOUNTIFSの処理を高速化したいです。 4 2022/04/07 02:38
- その他(プログラミング・Web制作) Pythonを用いたフラッシュ暗算ソフトの開発に必要なもの 2 2023/01/29 02:22
- Java Java 配列<選挙> 4 2023/07/31 15:07
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- C言語・C++・C# c言語 コマンドライン引数 4 2023/02/09 18:47
- C言語・C++・C# c言語で自然数nを入力、2以上n以下の偶数の累積sumを求めるプログラムをfor文を使って作りたいで 4 2022/11/09 14:10
- Ruby 初心者プログラミング 3 2022/10/12 11:31
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
複数桁10進数の*桁目だけを抽出...
-
#define _CRT_SECURE_NO_WARNIN...
-
「指定されたキャストは有効で...
-
cプログラミングについて…
-
(int *)の意味
-
C# 除算
-
C言語での引数の省略方法
-
C言語で分からないところがあり...
-
再帰呼び出し
-
C言語 探索に関して
-
表示をクリアする方法
-
c言語の問題です
-
acceptをalarmでタイムアウトさ...
-
cinの区切り文字の書き方
-
C2601 ローカル関数の定義について
-
eclipseで単文のfor文の改行を...
-
c言語 文字化けします
-
C言語について教えてください。
-
参照型 int や構造体では違う?
-
フィボナッチ数列 プログラミ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「指定されたキャストは有効で...
-
C言語での引数の省略方法
-
複数桁10進数の*桁目だけを抽出...
-
C言語 エラーの原因がわからな...
-
#define _CRT_SECURE_NO_WARNIN...
-
ラップ関数とはどんなものですか?
-
【C++】関数ポインタの使い方
-
実数の整数部,小数部の取得
-
int型の変数値をバイト列として...
-
std::set<int> で、ある値が何...
-
PowerShellがうまくいかない
-
(int *)の意味
-
CStringの配列要素を関数で受け...
-
ColorをRGBで指定する方法
-
「{ } で囲むだけ」は正しい?
-
acceptをalarmでタイムアウトさ...
-
if と配列の組み合わせ
-
read関数をノンブロッキングで...
-
(マルチスレッド)_beginthrea...
-
int16_t の _t は何?
おすすめ情報