入门每日一题_20070505
[color=DarkRed]从今天开始每天帖一题 欢迎大家讨论哦[/color][color=DarkRed]我想对喜欢程序设计的朋友应该很有好处把[/color]
在N行N列的数阵中, 数K(1〈=K〈=N)在每行和每列中出现且仅
出现一次,这样的数阵叫N阶拉丁方阵。例如下图就是一个五阶拉丁方阵。
编一程序,从键盘输入N值后,打印出所有不同的N阶拉丁方阵,并统计个数。
1 2 3 4 5
2 3 4 5 1
3 4 5 1 2
4 5 1 2 3
5 1 2 3 4
我做的,想了好半天
#include<stdio.h>#define N 10
int main()
{
int a[N]= {0};
int n,m = 0;
int i,j;
printf("please input number low %d:\n",N+1);
scanf("%d",&n);
for(i=0; i<(n+1); i++)
{
a[i] = i+1;
}
for(i=0; i<n; i++)
{
m = m%n + i;
for(j=0; j<n; j++)
{
m++;
printf(a[m%n]);
}
printf("\n");
}
getch();
return 0;
}
哦 我晕 版主把前面的那个删掉吧,我发错了
那个是我没有做出来的呵呵
这个才是
#include<stdio.h>
#define N 10
int main()
{
int a[N];
int n;
int i,j;
printf("please input number low %d:\n",N+1);
scanf("%d",&n);
for(i=0; i<(n+1); i++)
{
a[i] = i+1;
}
for(i=0; i<n; i++)
{
for(j=i;j<(n+i); j++)
{
printf("%4d",a[j%n]);
}
printf("\n");
}
return 0;
}
页:
[1]