⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lind7-7.c

📁 谭浩强第二版的课后习题的答案的源程序
💻 C
字号:
#include<stdio.h>
int a[100][100];
int i,j,z,n;

getn()
{
	printf("Please input n(n%2==1).\n");
	scanf("%d",&n);
	if(n%2==0)
	{
		printf("A fault number.\n\n");
		getn();
		return;
	}
	else
	{
		return(n);
	}

}

void a_z()
{
	a[i][j]=z;
	z++;
}

void yiban()
{
	i=i-1;
	j=j+1;
	a_z();
}

void zuishang()
{
	i=n-1;
	j=j+1;
	a_z();
}
void zuiyou()
{
	i=i-1;
	j=0;
	a_z();
}

void yizhan()
{
	i=i+1;
	a_z();
}

int ar(int i,int j)
{
	int t;
	t=a[i][j];
	return(t);
}
void paixu()
{
	for(i=0;i<n;i++)
	for(j=0;j<n;j++)
	{
		a[i][j]=0;
	}

	for(i=0,j=(n-1)/2,a[i][j]=1,z=2;z<=n*n;)
	{

	if(ar(i-1,j+1)==0&&i!=0&&j!=n-1)
	yiban();

	else if(ar(i-1,0)==0&&i!=0&&j==n-1)
	zuiyou();

	else if(ar(n-1,j+1)==0&&i==0&&j!=n-1)
	zuishang();

	else
	yizhan();
	}
}

nn(int b)
{

	int d,f;

	for(d=0;b>0;d++)
       {
		f=b%10;
		b=b-f;
		b=b/10;
       }


	return(d);

}

void print()
{

	for(i=0;i<n;i++)
	for(j=0;j<n;j++)
	{
		for(z=0;z<nn(n*n)-nn(ar(i,j));z++)
		printf("0");

		printf("%d ",a[i][j]);

		if(j==n-1)
		printf("\n\n");
	}
}

void main()
{
	n=getn();
	paixu();
	print();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -