前提・実現したいこと
C language (Only using Function & Array & without pointer)
8queen 問題 について
Question about 8-Queen
発生している問題・エラーメッセージ
4*4 ができましたが、それからN*Nのプログラムを作成していくのですが、今までのやり方であると非常に長たらしいプログラムになるのでループを短縮するための自作関数のアイデアがほしい。
I have finished making 44 but can't do NN by using the same way. I would appreciate that someone that can help me make a selfmade-function to figure this out.( without using pointer & using only One-dimensional array)
該当のソースコード
#include<stdio.h>
int main(void)
{
int a[4], i, j, k, l;
// printf("How Many?==>>(>=4)");
// scanf("%d", &n);
// for(i=0; i<n; i++)
// {
// scanf("%d", a[i]);
// }
printf("ok0 \n");
for(i=0; i<4; i++) { a[0]= i; for(j=0; j<4; j++) { a[1]= j; if( (i-j)*(i-j) != 1 || i - j ==0) { for(k=0; k<4; k++) { a[2]= k; if( (j-k)*(j-k) != 1 || j-k ==0) { for(l=0; l<4; l++) { a[3]= l; if( (k-l)*(k-l) != 1 || k-l ==0) { if( i != j && i != k && i != l && j != k && j != l && k != l) { printf(" %d %d %d %d\n",i, j, k, l); n++ } } } } } } } } printf(" Total => %d <=", n); return 0;
}### 試したこと
変数が同じ出ないことのIFと斜めは変数i-jの二乗が1でないIFを利用した。
int i, j;
By using ( i != j && i != k && i != l && j != k && j != l && k != l)
and (i-j)*(i-j) != 1
補足情報(FW/ツールのバージョンなど)
多次元配列ポインターを使わずに解決する方法が欲しいです。
It would best to solve this issue without using Multi-dimensional array & pointer.

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/11/30 11:34
2018/11/30 11:41
2018/11/30 12:15