gpt4 book ai didi

C 编程 - 一个数组和一个随机数组合的问题?

转载 作者:太空狗 更新时间:2023-10-29 15:27:27 24 4
gpt4 key购买 nike

这是我遇到问题的代码部分。我不明白为什么它做错了。我有一个数组,它存储数字 0 - 25,它们是大小写。这些数字将被随机化并覆盖到数组中。唯一的条件是没有数字可以是双数,只能有一个数字。我不是要你做我的代码,而是要暗示我或指出我的写作方向。我正在努力学习:)

问题出在第二个 do 循环中。我可以让数字随机化,但我得到了 double 。我创建了一个循环来检查和修复此问题,但它不起作用。代码确实运行了,但仍然会发生 double ,我不明白为什么。在我看来是正确的。请看,谢谢(:

这是我最初所做的(最后是我现在的位置):

int check_double = 0;
int i = 0;
int counter = 0;
int array_adder = 0;
int random_number = 0;

int cases[] = {
1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26
};

float money[] = {
0.01,1,5,10,25,50,75,100,200,300,400,500,750,1000,5000,10000,25000,50000,750000,100000,200000,300000,400000,500000,750000,1000000
};

//Randomize all case number and realine them in the array
srand ( time(NULL) );
do
{
cases[counter]= rand() % 26;
counter += 1;
printf("%d\n", cases[counter]);
}
while (counter <= 25);

//make sure there are no doubles in the array, just 0 - 25 and not a single number repeated twice
do
{
check_double = 0;

for (i = 0; i < counter; i++)
{
if (cases[counter] == cases[i])
{
cases[counter] = rand()% 26;
check_double == 1;
}
}
}

while (check_double != 0);

目前,我在那之后所取得的成就是组合两个循环并在数组运行时检查 double 。这是我做的,它仍然有 double ,我不确定为什么,我只发布了两个循环组合的 cose:

do
{

cases[counter]= rand() % 26;

if (cases[counter]>=1);

for(i=0;i<=counter;i++)

if (cases[counter]==cases[i])
{
cases[counter]=rand()% 26;
}

printf("%d\n",cases[counter]);
counter+=1;
}

最佳答案

Robsta,你可以尝试下面的代码,我已经在 Dev-C++ 中运行了它,你需要的任何更改都可以从你这边进行。但是,我向您保证,这段代码会生成您想要的结果。

int check_double = 0;
int i = 0;
int counter = 0;

int cases[] = {
1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26
};
//Randomize all case number and realine them in the array
srand ( time(NULL) );
do
{

cases[counter]= rand() % 26;

for(i=0;i<counter;i++)
if (cases[counter]==cases[i]){
while (cases[counter]==cases[i])
{
cases[counter]=rand()% 26;
}
i=0;
}

printf("%d\t%d\n",counter,cases[counter]);
counter+=1;
}while (counter <= 25);

如果您有任何需要说明的地方,我很乐意与您讨论。

-桑迪普

关于C 编程 - 一个数组和一个随机数组合的问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7494861/

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