荔园在线
荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀
[回到开始]
[上一篇][下一篇]
发信人: wwei (玩玩而已), 信区: Program
标 题: Re: 一个TC问题
发信站: 荔园晨风BBS站 (Mon Oct 21 10:55:28 2002), 站内信件
我写了一个,不过方法有点傻,就是从1~n*n,找到对应的数组元素并赋值
代码如下:
/****************************************************/
/* filename:fz */
/****************************************************/
int m=1,n,i,j; /*m记录当前操作的数组元素的值,其范围是1~n*n
n记录每行需要赋值的宽度
i,j记录当前操作的数组元素的行列下标
为了方便函数调用能改变多个值,及免除函数调用时需要太多的参数,使用全局变量
*/
void printall (b)
int b[80][80];
{int n1,n2;
printf("\n");
for(n1=0;n1<n;n1++)
{for(n2=0;n2<n;n2++) printf("%5d",b[n1][n2]);
printf("\n");}
}
void inline(b,fla,su)
int b[80][80], fla,su;
/*本函数给数组的一行或者一列赋值*/
{int n1,n2;
while (1)
{n1=i;n2=j;
if (fla==0 && su==0) n2=n2+1;
else if (fla==0 && su!=0) n2=n2-1;
else if (fla==1 && su==0) n1=n1+1;
else n1=n1-1;
printf("\nm= %d\n" ,m);
if (n1<0 ||n2<0 || n1>=n ||n2>=n || b[n1][n2]!=0)
{b[i][j]=m;
printf("this:b[%d][%d]=%5d\n" ,i,j,m);
{if (m==(n*n))
printf("this is the last number,all is OK.\n" ,i,j,m);
else
printf("next:b[%d][%d] error,out of range or not empty.\n" ,n1,
n2);}
/*下一个待操作的元素超出范围或者已经被赋值,则跳回主程序改变方向*/
break;}
else
{b[i][j]=m;
printf("this:b[%d][%d]=%5d\n" ,i,j,m);
printf("next:b[%d][%d] \n" ,n1,n2);
m++;i=n1;j=n2;}
}
}
void main()
{int n1,n2,b[80][80]={0},fla,su,chgtime=0;
float tmp1 ,tmp2;
printf("\nPlease input a number:(2~80)\n");
scanf("%d",&n);
if (n<=1 || n>80)
{printf("\nerror!\n");
goto end;}
printf("\nthe old numbers is :\n");
printall (b);
i=0;j=0;fla=0;su=0;
while (m <n*n)
{inline(b,fla,su);
chgtime++;
printf ("change %d times",chgtime);
{if (fla==0) fla=1;else fla=0;} /*这里fla记录对"行"操作,还是对"列"操作
*/
{tmp1=(float)i;tmp2=(float)n;
if (tmp1<tmp2/2) su =0;
else su=1;} /*这里su记录在对"行"或"列"操作时,下标是进行自加还是自减运算
*/
}/*每循环一次,则对一行或一列赋值,随后改变fla操作对象,并确定对行或列操作
的顺序*/
{
printf("\nthe new numbers is :\n");
printall (b);
}
end:
;
}
/*the end of file fz.c */
/***********************************************************/
?
? 在 lr (三戒) 的大作中提到: 】
: 你可以帮我写一个吗?
: 【 在 PENNY (摩诃无量) 的大作中提到: 】
: : 一个数组、一重循环、只要找到坐标规律就可以了。
--
※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.36.61]
[回到开始]
[上一篇][下一篇]
荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店