蛇形添数解题报告。
2012-12-10 17:20 Dr.Ray 阅读(81) 评论(0) 收藏 举报方法积累:
1.将矩阵初始化为0,以标明方向。
使用代码:memset(a,0,sizeof(a));,使用前包含string.h
2判断程序停止条件:
我开始是使用当矩阵所有数都不为0时停止,于是就要在最后一个操作点判断其上下左右都不为0,还要考虑填入最后一个操作点。此方法太麻烦。
于是我用了验证填入数字是否等于n^2很快就解决了问题。
最后看书上的优秀代码,修改为可以直接在循环语句的条件判断部分进行判断。
错误记录:
1.填完一个周期后,只用修改纵坐标,我粗心吧把横坐标也修改了。
新知识:
memset(a,0,sizeof(a));
a是指针,0是初始化的值,sizeof(a)是a指向的内存的大小。
将a指向的内存块全部赋值为0
此函数通常用于给较大内存块赋初值
memset按字节赋值:
如int a[5],
memset(a,0,20)
则a数组被成功初始化为0,若memset(a,0,5)则乱码。
memset源码(来自C标准库)
#include<string.h>
void*(memset)(void*s,int c,size_t n)不理解*(memset)
{
const unsigned char uc=c;不理解const
unsigned char *su;
for(su=s;0<n;++su,--n)
*su=uc;
return (s);
}
浙公网安备 33010602011771号