#include<stdio.h>#include<stdlib.h>#include<time.h>intRandInt(int a,int b);intmain(){int N;int i;int ii;int a;int b;int duplicates =0;//判断是否重复int*A =NULL;printf("Input the value of i: ");scanf("%d",&a);printf("\nInput the value of j: ");scanf("%d",&b);printf("\nInput the value of N: ");scanf("%d",&N);
A =(int*)malloc(sizeof(int)* N);for(i =0; i < N; i++){if(i ==0){
A[i]=RandInt(a, b);continue;}else{while((A[i]=RandInt(a, b)),!duplicates)// 有重复while循环{for(ii = i -1; ii >=0; ii--){if(A[ii]== A[i])break;//有重复}if(ii <0)break;//全部检查完就跳出循环}}}for(i =0; i < N; i++)printf("%d ", A[i]);return0;}intRandInt(int a,int b){int c;srand((unsigned)time(NULL));
c = a +rand()%(b - a +1);return c;}
#include<stdio.h>#include<stdlib.h>#include<time.h>intRandInt(int a,int b);intmain(){int N;int i;int a;int b;int*A =NULL;int*used =NULL;// Used[A[i]]=1表示该值最初已经存入Aprintf("Input the value of i: ");scanf("%d",&a);printf("\nInput the value of j: ");scanf("%d",&b);printf("\nInput the value of N: ");scanf("%d",&N);
A =(int*)malloc(sizeof(int)* N);
used =(int*)malloc(sizeof(int)* N);for(i =0; i < N; i++){if(i ==0){
A[i]=RandInt(a, b);
used[A[i]]=1;continue;}else{// 有重复while循环while((A[i]=RandInt(a, b)), used[A[i]]==1);
used[A[i]]=1;}}for(i =0; i < N; i++)printf("%d ", A[i]);return0;}intRandInt(int a,int b){int c;srand((unsigned)time(NULL));
c = a +rand()%(b - a +1);return c;}
#include<stdio.h>#include<stdlib.h>#include<time.h>voidSwap(int*a,int*b);intRandInt(int i,int j);intmain(){int i;int N;int*A =NULL;printf("\nInput the value of N: ");scanf("%d",&N);
A =(int*)malloc(sizeof(int)* N);for(i =0; i < N; i++)
A[i]= i +1;for(i =1; i < N; i++)Swap(&A[i],&A[RandInt(0, i)]);for(i =0; i < N; i++)printf("%d ", A[i]);return0;}voidSwap(int*a,int*b){int temp;
temp =*a;*a =*b;*b = temp;}intRandInt(int i,int j){int a;srand((unsigned)time(NULL));
a = i +rand()%(j - i +1);return a;}