一道面试题,大家看看
有一个整型数组int[100],把1-100随机放到这个数组里,数字不能重复,怎样能完成要求。
[解决办法]
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define SWAP(a,b){int tmp = a; a = b; b = tmp;}
int main(void)
{
int a[100];
int i;
int j;
srand(time(NULL));
for (i = 0; i < 100; i ++)
a[i] = i;
for (i = 0; i < 100; i ++)
{
j = rand() % 100;
SWAP(a[i], a[j])
}
for (i = 0; i < 100; i ++)
printf("%d ", a[i]);
return 0;
}
void Shuffle(int* arr,n)
{
int index;
if(n==0)
return;
else
while(n--){
index=rand()%n;
swap(arr[n],arr[index]);
}
}
void Swap(int& a, int& b){
a=a+b;
b=a-b;
a=a-b;
}