问两道C语言编程题答案

来源:百度知道 编辑:UC知道 时间:2024/06/28 17:46:55
Q1:由n*n个方块排成n行n列的正方形称为“n元棋盘”。如果两个皇后位于n元棋盘上的同一行或同一列或同一对角线上,则称它们为互相攻击。要求输出使n元棋盘上的n个皇后互不攻击的所有布局。
具体要求如下;
(1) n可由键盘输入。
(2) 在输入n后,动态建立方法说明中所需要建立的数组空间;程序运行结束时释放该存储空间。
(3)分别用n=4,5,6运行你的程序。

Q2:输入一个自然数n,求n!,同时统计结果中有多少0。

不胜感激!!!

问题1自己要修改一下
#include<stdio.h>
#define N 8
int col=1,row=1,slash=1,bslash=1;
int a[N][N];
int p,q,k,l;
int num=0;
void trial(int i)
{
int j; /*注 意,这里的j 一定要设为内部变量*/
if(i==N)
{
num++;
for(k=0;k
{
for(l=0;l
{
if(a[k][l]==1)
printf("@");
else printf("*");
}
printf("n");
}
printf("nn");
getchar();
}
else
{
for(j=0;j
{
for(k=0;k
if(a[k][j]==1)
{
col=0;
break;
} /*列*/
p=i-1;
q=j+1;
while((p>=0)&&(q
{
if(a[p][q]==1)
{
slash=0;
break;
}
p--;
q++;
}
p=i-1;
q=j-1; /*对角*/
while((p>=0)&&(q>=0))
{
if(a[p][q]==1)
{
bslash=0;
break;
}
p--;
q--;
} /*斜对角*/
if((col==1)&&(slash==1)&&(bslash==1)) /*