gpt4 book ai didi

c - 从数组中随机选择两个元素并交换C中的值

转载 作者:行者123 更新时间:2023-11-30 17:09:29 26 4
gpt4 key购买 nike

我正在编写一个程序,其中部分指令是随机选择两个不同的 ord[] 元素,然后交换它们的内容。首先,我什至从数组生成随机元素都遇到问题,更不用说交换它们了(我什至无法让它打印随机值)。我究竟做错了什么?如果我把一切都搞砸了,我很抱歉。这是我到目前为止所拥有的:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
#define MMAX 5;
#define ORD_SIZE ( sizeof((ord)) / sizeof((ord[0])) )
int randomOne = 0;
int randomTwo = 0;
int ord[MMAX];

srand(time(NULL));
randomOne = ord[rand() % ORD_SIZE];
randomTwo = ord[rand() % ORD_SIZE];
printf("%d", randomOne);
printf("%d", randomTwo);

int tmp = 0;
tmp = randomOne;
randomOne = randomTwo;
randomTwo = tmp;
printf("%d", ord[randomOne]);
printf("%d", ord[randomTwo]);

return 0;}

最佳答案

你有两个大问题:

  1. 您需要生成随机索引并交换这些索引处的元素,而不是获取数组的 2 个随机元素:

.

randomOne = rand() % ORD_SIZE;
randomTwo = rand() % ORD_SIZE;
printf("%d", ord[randomOne]);
printf("%d", ord[randomTwo]);

int temporary = ord[randomOne];
ord[randomOne] = ord[randomTwo];
ord[randomTwo] = temporary;
  • 您的数组 ord 尚未初始化。
  • 此外,请查看 http://blog.codinghorror.com/the-danger-of-naivete/ 。您的“随机性”可能有点偏向某些指数。

    关于c - 从数组中随机选择两个元素并交换C中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33269540/

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