我想要得到一个随机无重复元素的数组,怎么来写

void answer_function()
{
int i,j,b[N];
int d[N]={1,2,3,4,5};
float counttime,sumtime=0,maxtime=120;
clock_t endtime,starttime;
char str1;
time_t tstr,tend;
system("CLS");
read();
color(14);
printf("亲爱的同学,请做好答题准备,本次答题限时120秒!\n");
//五秒倒计时//
for(i=4;i>=0;i--)
{
tstr=time(NULL);
tend=time(NULL);
while(tend-tstr<1)
tend=time(NULL);
color(12);
printf("距离开始答题还有%d秒!",d[i]);
printf("\n");
}
color(12);
printf("\n祝您答题成功!\n");
system("pause");
system("CLS");
read();
get_num(b,5);
for(i=0;i<N;i++)
{
color(7);
printf("%d. %s\nA. %s\nB. %s\nC. %s\nD. %s\n",a[i].test_num,a[b[i]].exam,a[b[i]].A,a[b[i]].B,a[b[i]].C,a[b[i]].D);
//输入答案
starttime=clock();
printf("请输入答案:");
scanf("%c",&str1);
getchar();
if(str1>90)
{
str1=str1-32;
}
endtime=clock();
counttime=(float)(endtime-starttime)/CLOCKS_PER_SEC;
sumtime+=counttime;
if(sumtime>maxtime)
{
color(12);
printf("答题超时,请停止答题");
break;
}
if(str1==a[b[i]].right)
{
color(10);
printf("恭喜你回答正确!");
printf("本次答题消耗时间为%.2f秒,总消耗时间为%.2f秒",counttime,sumtime);
printf("\n\n");
}
else
{
color(12);
printf("回答错误,正确答案为%c",a[b[i]].right);
printf("本次答题消耗时间为%.2f秒,总消耗时间为%.2f秒",counttime,sumtime);
printf("\n\n");
}
}
printf("答题结束");
system("pause");
system("color F9");
user_choice();
}

int check(int *num,int i)
{
int j;
for(j=0;j<i;i++)
if(num[j]==num[i])
return 1;
return 0;
}

void get_num(int *num,int m)
{
int i,j,r;
srand(time(NULL));//产生多套试题,保证每次产生的都不一样//
for(i=0;i<m;i++)
{
num[i]=rand()%n;
}
}

仅供参考:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int d[6];
int i,n,a,b,t;
int c,j;
void main() {
    srand(time(NULL));
    printf("shuffle 0..n-1 demo\n");
    for (n=1;n<=5;n++) {/* 测试1~5个元素 */
        printf("_____n=%d_____\n",n);
        j=1;
        for (c=1;c<=n;c++) j=j*c;/* j为n! */
        j*=n*2;
        for (c=1;c<=j;c++) {/* 测试n*2*n!次 */
            for (i=0;i<n;i++) d[i]=i;/* 填写0~n-1 */
            for (i=n;i>0;i--) {/* 打乱0~n-1 */
                a=i-1;b=rand()%i;
                if (a!=b) {t=d[a];d[a]=d[b];d[b]=t;}
            }
            printf("%04d:",c);
            for (i=0;i<n;i++) printf("%d",d[i]);
            printf("\n");
        }
    }
    printf("shuffle 1..n demo\n");
    for (n=1;n<=5;n++) {/* 测试1~5个元素 */
        printf("_____n=%d_____\n",n);
        j=1;
        for (c=1;c<=n;c++) j=j*c;/* j为n! */
        j*=n*2;
        for (c=1;c<=j;c++) {/* 测试n*2*n!次 */
            for (i=1;i<=n;i++) d[i]=i;/* 填写1~n */
            for (i=n;i>1;i--) {/* 打乱1~n */
                a=i;b=rand()%i+1;
                if (a!=b) {t=d[a];d[a]=d[b];d[b]=t;}
            }
            printf("%04d:",c);
            for (i=1;i<=n;i++) printf("%d",d[i]);
            printf("\n");
        }
    }
}