第1个回答 推荐于2016-05-03
#include"time.h"
#include"stdio.h"
#include"stdlib.h"
#include"malloc.h"
#define N 10
#define LIST_INIT_SIZE 100
struct LIST {
int *elem;
int length;
int listsize;
};
typedef struct LIST List;
void List_Init(List *L)
{
L->elem=(int *)malloc(sizeof(int));
if(!L->elem) exit(0);
L->length=0;
L->listsize=LIST_INIT_SIZE;
}
int List_Del(List *L,int i,int e)
{
int*p,*q;
int j=N;
p=&(L->elem[i-1]);
e=*p;
q=L->elem+L->length-1;
for(++p;p<q;++p)
*(p-1)=*p;
L->length--;
return e;
}
void main()
{
List L;
int i,k=0,j=N;
int e;
List_Init(&L);
srand(time(NULL));
for(i=0;i<N;i++)
{
L.length++;
L.elem[i]=i;
}
printf("%d\n\n\n\n\n\n",L.elem[9]);
for(i=0;i<N;i++)
{
rand()%j+1;
e=List_Del(&L,j,e);
printf("%d\n",e);
j--;
}
printf("\n");
}
输出随机不重复的随机数~
可能有点问题,你自己再调试下吧