gpt4 book ai didi

c - 嵌套 for 循环数组随机数

转载 作者:行者123 更新时间:2023-11-30 19:09:24 25 4
gpt4 key购买 nike

所以我想做的是打印出 7 个随机数,并且循环不应该打印出重复项。当我尝试调试时,似乎我没有进入 if 语句所在的嵌套循环。

我还打印了一个内存值,并且随机数是重复的。

我相信我的第二个嵌套 for 循环有问题,但我不知道是什么问题,如果有人能看到这个问题并向我解释我的第二个嵌套循环发生了什么,我将不胜感激。

#include <stdio.h>
#include <time.h>
#define SIZE 35

int main()
{
int number[SIZE];

srand(time(NULL));

for (int i = 1; i < 7; i++)
{
number[i] = rand() % 35 + 1;
for (int j = 0; j > i; j++)
{
if (number[i] == number[i])
printf("%d\n", number[i]);
i--;
}
}
for (int i = 0; i < 7; i++)
{
printf("%d\n", number[i]);
}
getchar();

return 0;
}

最佳答案

对于初学者来说,这个循环

for (int j = 0; j > i; j++)

永远不会被执行,因为j的初始化方式始终小于i

程序可以如下所示

#include <stdlib.h>
#include <stdio.h>
#include <time.h>

#define SIZE 35

int main(void)
{
int number[SIZE];
int n = 7;

int i = 0;

srand( ( unsigned int )time( NULL ) );

while ( i < n )
{
int value = rand() % SIZE + 1;

int j = 0;
while ( j < i && number[j] != value ) j++;

if ( j == i ) number[i++] = value;
}

for ( i = 0; i < n; i++ ) printf( "%d ", number[i] );
putchar( '\n' );

getchar();

return 0;
}

它的输出可能是

10 21 16 17 26 25 34

关于c - 嵌套 for 循环数组随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43285228/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com