C Program to solve N Queens using greedy method

Program

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
void queen(int, int);
void print(int);
int place(int, int);
int board[20], count;
void main()
{
	int n;
	printf("Enter number of Queens:\t");
	scanf("%d", &n);
	if( n <= 3)
	{
		printf("No solution found\n");
		exit(0);
	}
	queen(1, n);
}
void print(int n)
{
	int i, j;
	printf("\nSolution %d:\t\n\n", ++count);
	for(i = 1; i <= n; ++i)
		printf("\t%d", i);
	for(i = 1; i <= n; ++i)
	{
		printf("\n%d",i);
		for(j = 1; j <= n; ++j)
		{
			if(board[i] == j)
				printf("\tQ");
			else
				printf("\t*");
		}
	}
	printf("\n");
}
int place(int row, int column)
{
	int i;
	for(i = 1; i <= row - 1; ++i)
	{
		if(board[i] == column)
			return 0;
		else if(abs(board[i] - column) == abs(i - row))
			return 0;
	}
	return 1;
}
void queen(int row, int n)
{
	int column;
	for(column = 1; column <= n; ++column)
	{
		if(place(row, column))
		{
			board[row] = column;
			if(row == n)
				print(n);
			else
				queen(row + 1, n);
		}
	}
}

Output

Enter number of Queens:	3
No solution found