c 언어 랜덤 정수 추출 실현

2269 단어 code
c 언어로 다음과 같은 기능을 실현한다. 예를 들어 1000을 정하고 그 중에서 무작위로 10개의 수를 추출한다(중복되지 않는다). 이 프로그램은 총 개수와 추출 개수를 실시간으로 입력하고 최종적으로 추출한 숫자는'D:\sampling'에 저장한다.number.txt
 
#include 
#include 
#include
#include

void swap2(int *,int *);
void bubble(int storenumber[ ],int n);

int storenumber[100000]={0};  /*the max number of sampling is 100000*/

int main()
{
	FILE *f1;

	double p;
	int h,k,i;
	int N,Nsample,number;
	char anything;
    srand((unsigned)time(NULL));
    printf("Enter the total number:
"); scanf("%d",&N); printf("Enter the sampling size:
"); scanf("%d",&Nsample); for(h=1;h<=Nsample;h++){ p=rand()/(double)(RAND_MAX); number=(int)(p*N)+1; for(k=1;k<=h;k++){ /*remove the duplicate number*/ if(number==storenumber[k]){ p=rand()/(double)(RAND_MAX); number=(int)(p*N)+1; k=0; } } storenumber[h]=number; } printf("
MAKE A FORTUNE, LEO!!!

"); bubble(storenumber,Nsample); /*for the numeric sorting*/ if((f1=fopen("d:\\sampling_number.txt","w"))==NULL){ printf("file open error!
"); exit(0); } for(i=1;i<=Nsample;i++){ fprintf(f1,"%d
",storenumber[i]); printf("The %d sample is %d
",i,storenumber[i]); } if(fclose(f1)){ printf("can not close the file!
"); exit(0); } printf("
ATTENTION:
The file is saved in 'D:\\sampling_number.txt'
"); printf("
Type any character on keyboard, then 'Enter'"); scanf("%s",&anything); return 0; } void bubble(int storenumber[ ],int n) /*for the numeric sorting*/ { int i,j; for(i=1;i<=n;i++){ for(j=1;j<=n-i;j++){ if(storenumber[j]>storenumber[j+1]){ swap2(&storenumber[j],&storenumber[j+1]); } } } } void swap2(int *px,int *py) { int t; t=*px; *px=*py; *py=t; }

좋은 웹페이지 즐겨찾기