有点不懂memset函数的用法,下面这个程序里memset起了什么作用

输入ZIML,不断另L=(Z*I+L)%M,直到L的值回到最初输入的值,统计循环次数#include<stdio.h>#include<string.h>constint... 输入ZIML,不断另L=(Z*I+L)%M,直到L 的值回到最初输入的值,统计循环次数

#include <stdio.h>
#include <string.h>
const int N = 10010;
int flag[N];
int main()
{
int Z,L,I,M;
int cas = 1;
while(scanf("%d%d%d%d",&Z,&I,&M,&L) != EOF) {

if(Z==0 && L==0 && I==0 && M==0)
break;

memset(flag,0,sizeof(flag)); /////////////////这边的memset不懂
int cut = 0;

int tmp = L;
while( ++cut )
{
tmp = (Z * tmp + I) % M;
flag[tmp]++; ////////////////////
if(flag[tmp]==2) //////////////////为什么到这里可以退出循环
break;
}

printf("Case %d: %d\n",cas++,cut-1);
}
return 0;
}
展开
 我来答
匿名用户
2018-03-31
展开全部
memset(flag,0,sizeof(flag)); //初始化flag数组, 全部元素置为0
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式