| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1095 人关注过本帖
标题:昨天发的是顺时针螺旋数组今天发逆时针螺旋数组
只看楼主 加入收藏
zhouweike
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2006-9-23
收藏
 问题点数:0 回复次数:3 
昨天发的是顺时针螺旋数组今天发逆时针螺旋数组
大家看看着次和上次的不同之处,仅做微小改动而已。
# include <stdio.h>
void main()
{
int f(int b);
int a[11][11],i,j ;
for(i=1;i<=10;i++)
for(j=1;j<=10;j++)
{
if(i<=j)
{
if(i<=(11-j))
a[j][i]=36*(i-1)-8*f(i-2)+j-(i-1);
else
a[j][i]=36*(10-j)-8*f(9-j)+j+i-2*(10-j)-1 ;
}
else
{
if(i<=(11-j))
a[j][i]=36*j-8*f(j-1)-i+j+1 ;
else
a[j][i]=36*(11-i)-8*f(11-i-1)-i-j+2*(10-i)+3 ;
}
;
}
;
for(i=1;i<=10;i++)
{
for(j=1;j<=10;j++)
printf("%4d",a[i][j]);
printf("\n");
}
;
}
int f(int b)
{
int m ;
if(b<=0)
m=0 ;
else
m=f(b-1)+b ;
return(m);
}
本人号86954303 希望各位高手批评指导
搜索更多相关主题的帖子: 时针 螺旋 发逆 
2006-09-27 11:19
liqiankun
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-2-5
收藏
得分:0 

哥们,俺才学C,求程序的算法!谢谢!

2006-09-27 12:26
C之Itachi
Rank: 1
等 级:新手上路
帖 子:111
专家分:0
注 册:2006-7-16
收藏
得分:0 

兄弟 你这算法自己想的啊~~看着头痛..怎样的规律哦?? 比我强很多也!呵呵 新人~
#include <stdio.h>
main()
{ int a[10][10],i,j,m,n,k=0;
printf("input a num<10:\n");
scanf("%d",&n);
if(n%2==0)
m=n/2;
else
m=n/2+1;

for(i=0;i<m;i++)
{
for(j=i;j<n-i;j++)
{k++;a[i][j]=k;}
for(j=i+1;j<n-i;j++)
{k++;a[j][n-i-1]=k;}
for(j=n-i-1;j>i;j--)
{k++;a[n-i-1][j-1]=k;}
for(j=n-i-1;j>i+1;j--)
{k++;a[j-1][i]=k;}
}
for(i=0;i<n;i++)
{for(j=0;j<n;j++)
{
printf("%5d",a[i][j]);
}
printf("\n");

}
getchar();
getch();
}

这个写完头也大了.顺时针的.


2006-09-27 19:26
zhouweike
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2006-9-23
收藏
得分:0 
谢谢夸奖。这过是一些小小的数学技巧而已。我不过是把它分成了4块三角行而已。
从上个帖子顺时针到这个帖子的逆时针是用了一些线形代数的一点点知识而已。

2006-09-29 12:26
快速回复:昨天发的是顺时针螺旋数组今天发逆时针螺旋数组
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025400 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved