当前位置:首页 > 问答大全 > 急急急!!!C语言高手请进~~

急急急!!!C语言高手请进~~

被浏览: 0次 2023年06月30日 03:37
热门回答(2个)
游客1

也许是你没有看懂哪态凯程序导致的.
首先,
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]));

游客2

1. 程序可以正常编译并且运行,但你要清楚如何去输入.先输入一个数字n,接下来输入n个数字宽祥运.它便开始计算.此为一个周期.如果某次输入的n=0则程序结束.一切正常.
2. oo是表示宴闷无穷大,学过数学就应该知道无穷大符号怎么写,还是挺形象的.在C中就用一个足够大的整数来表示.
3. memset()是填充内存的函数,一般用来做初始化;memcpy()是复制内存慎梁的函数.关于函数的详解请参阅MSDN或者百度之.

程序完全正确,不用改.