c-为什么while循环有时会在满足退出条件之前退出



我需要创建一个由随机字符组成的可变长度字符串,所以我构建了一个函数来实现这一点。然而,在执行了几次之后,我注意到while循环停止执行,尽管最初我有(j<taille(,但后来我将其更改为(j&llt;=taille(。但我仍然有同样的问题,有时它不能正常执行这是我的代码:

void gener_observation(char num[b])
{
int taille,i,j;
srand(time(NULL));
taille = (rand()%(b-40)) + 1;
j=0;
i=0;
while(j <= taille)
{
i = ((rand()%26) + 65 );
num[j] = i;
j++;
}
}

将您的代码转换为:

void gener_observation(char num[b])
{
int taille,i,j;
srand(time(NULL));
taille = (rand()%(b-40)) + 1;
j=0;
i=0;
printf("The value of taille equals [%d]", taille);
while(j <= taille)
{
printf("Currently, j equals [%d]", j);
i = ((rand()%26) + 65 );
num[j] = i;
j++;
}
printf("Finished");
}

然后再次运行您的代码。由于您的代码包含一个随机数,这对我们所有人来说可能都不一样,但使用打印的结果,您可能会发现您遇到的问题。

最新更新