也许是你没有看懂程序导致的.
首先,
while(scanf("%d", &n), n)
{
}
中while那句的意思是
1.输入一个数字,赋值给n,
2.判断n的值,如果n为0,则退出while循环,在此程序中为退出整个程序,
3.如果n的值不为0,则运行while中的代码
能够理解这个语句的意思后,下面的代码就没有什么难度了.
2、oo 2000000000 干什么用的??为什么要定义这么大??
定义这么大是根据程序的需求来的,作者这里的意思当作无穷大处理,一般来讲规范的定义应该这样
#define 2、oo 2000000000UL //以防止溢出
3、 //memset(sum, 0, sizeof(sum));
memcpy(save+1, v+1, n*sizeof(v[1]));
我不知道是怎么回事,所以不会改
memset -- 是指对一块内存空间赋值.
memcpy -- 是指讲一块内存空间拷贝到另一块内存空间.
//memset(sum, 0, sizeof(sum));
是指,将sum地址开始大小为sizeof(sum)的一块内存空间,进行赋 0 值,
memcpy(save+1, v+1, n*sizeof(v[1]));
是指,将v+1地址开始的内存空间拷贝到save+1地址开始的内存空间,拷贝大小为n*sizeof(v[1]));
温馨提示:内容为网友见解,仅供参考