以下は8王妃問題と呼ばれているもので、自分の縦横斜めに自分しかいない正方行列を
求める問題のプログラムです(ガウスが作ったものとして知られています)
これをコンパイルすると、
Main.obj : error LNK2019: 見解決の外部シンボル _countが関数_mainで参照されました。
他に、set,flag_a,flag_b,flag_cも同様のエラー内容が発生します。
※開発環境はVisualStuidoを入れたコンソールタイプのテキストエディタです。
実行のためにご指摘いただけないでしょうか。宜しくお願いします。
<Ouhi8.c>
#include "Matchings.h"
#include <stdio.h>
int flag_a[N];
int flag_b[N*2-1];
int flag_c[N*2-1];
int pos[N];
int count = 0;
void print(void) {
int i;
for (i = 0; i < N; i++)
printf("%2d", pos[i]);
printf("\n");
count++;
}
void set(int i)
{
int j;
for (j = 0; j < N; j++) {
if (!flag_a[j] && !flag_b[i + j] && !flag_c[i - j + N-1]) {
pos[i] = j;
if (i == N-1)
print();
else {
flag_a[j] = flag_b[i + j] = flag_c[i - j + N-1] = 1;
set(i + 1);
flag_a[j] = flag_b[i + j] = flag_c[i - j + N-1] = 0;
}
}
}
}
#include "Matchings.h"
#include <stdio.h>
void set(int i);
int main(void)
{
extern int flag_a[N];
extern int flag_b[N*2-1];
extern int flag_c[N*2-1];
extern int count;
int i;
for (i = 0; i < N-1; i++)
flag_a[i] = 0;
for (i = 0; i < 2*N-1; i++)
flag_b[i] = flag_c[i] = 0;
set(0);
printf("count=%d", count);
return (0);
}