谢谢各位!
----------------解决方案--------------------------------------------------------
我看懂了!谢谢版主,这个想法真奇妙!我一定牢牢记住!
----------------解决方案--------------------------------------------------------
for(i=1;i<=N/2+1;i++)
这个地方我不怎么明白/?
----------------解决方案--------------------------------------------------------
我的就算了.还是看看斑竹的很不错.
这个循环貌似可以减少循环次数.
因为有1半是一样的.上下对称,当中第8行是不一样的.所以要加1
[此贴子已经被作者于2006-11-18 16:56:34编辑过]
----------------解决方案--------------------------------------------------------
麻烦问一下版主:在给b[][]赋值时为何i从1开始遍历,而不是从0开始遍历呢?二维数组的第一个不是应该是b[0][0]吗?
----------------解决方案--------------------------------------------------------
其实是可以从00开始的,只是我为了和图形的行列相吻合而从11开始,只是没有使用00而已.
呵呵,不能拘泥的.不过定义数组时要考虑,不要越界就可以了.
----------------解决方案--------------------------------------------------------
for(i=1;i<=N/2+1;i++)
这个地方我不怎么明白/?
和走刀口→超 的解释一样,因为上下对称,所以只要循环到8行(此时第8行也可以相同的考虑进去).
----------------解决方案--------------------------------------------------------
#include<stdio.h>
#include<math.h>
#define N 15
#define M (N-1)/2
int main()
{
int i,j;
for(i=-M;i<=M;i++)
{
for(j=-M;j<=M;j++)
{
if(abs(i)==M || abs(j)==M)
printf("H");
else if(abs(i)==M-1 || abs(j)==M-1)
printf("T");
else
printf("%d",M-1-(abs(i)>abs(j)?abs(i):abs(j)));
}
printf("\n");
}
return 0;
}
----------------解决方案--------------------------------------------------------
大家都好厉害啊 受益匪浅~~~~~~
----------------解决方案--------------------------------------------------------
to:我不是郭靖版主,printf("%d",M-1-(abs(i)>abs(j)?abs(i):abs(j)));该句程序如何理解呢?我看了很久也没理解。
----------------解决方案--------------------------------------------------------