我正在编写一个程序,其中部分指令是随机选择两个不同的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;}
答案 0 :(得分:0)
你有两大问题:
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/。你的“随机性”可能对某些指数有点偏向。