51Testing软件测试论坛
标题:
不知道C语言的问题可不可以提问啊???
[打印本页]
作者:
lhjtc8257
时间:
2007-5-19 18:03
标题:
不知道C语言的问题可不可以提问啊???
如果可以的话,请帮我解答下这个题目?
要实现这个效果如何?
16 15 14 13
5 4 3 12
6 1 2 11
7 8 9 10
N*N的螺旋矩阵sdlkfj8
作者:
lin85210
时间:
2007-5-20 09:24
/*
N×N螺旋方阵
*/
#include<stdio.h>
#define N 9
static a[N][N];
void fun(int*,int*,int);
int main(int argc,char*argv[])
{ int i=0,j=0,n=0;
for(int k=1;k<=N*N;k++)
{ a[n+i][n+j]=k;
fun(&i,&j,N-n-n);
if(i==0 && j==0)n++;
}
for(i=0;i<N;i++,printf("\n"))
for(j=0;j<N;j++)printf("%4d",a
[j]);
return 0;
}
void fun(int*i,int*j,int n)
{ if(*i==0 && *j<n-1)++(*j);
else if(*j==n-1 && *i<n-1)++(*i);
else if(*i==n-1 && *j > 0)--(*j);
else if(*j==0 && *i > 0)--(*i);
}
N的数字自己按自己的题目要求 更改能够得到这种效果吧
作者:
gzj_06
时间:
2007-5-20 12:56
标题:
回复 #2 lin85210 的帖子
我试了一下你的程序,不行啊,然后我从网上又搜了下,搜到下面的程序,是可以运行的
#include <iostream>
using namespace std;
int main()
{ cout << "请输入方阵的阶数:" << endl;
int n;
cin >> n;
int m;
if ( n%2==0 ) m=n/2;
else m=n/2+1;
int i,j,k=0,a[20][20];
for( i=0;i<m;i++ )
{ for( j=i;j<n-i;j++ )
{ k++;
a
[j]=k;
}
for( j=i+1;j<n-i;j++ )
{ k++;
a[j][n-i-1]=k;
}
for( j=n-i-2;j>=i;j-- )
{ k++;
a[n-i-1][j]=k;
}
for( j=n-i-2;j>=i+1;j-- )
{ k++;
a[j]
=k;
}
}
k=0;
for (i=0;i<n;i++)
for (j=0;j<n;j++)
{ cout << a
[j] << '\t';
k++;
if (k%n==0) cout << endl;
}
return 0;
}
作者:
lhjtc8257
时间:
2007-5-25 20:00
3Qsdlkfj1
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2