2013年5月29日 星期三

[C]樂透機

題目:
電腦隨機產生樂透號碼

  • 從01~49中任意產生6個號碼, 不能重複
  • 必須用function,傳陣列給function
  • (1)主程式中,輸入6個號碼(你買的號碼)
  • (2)主程式中印出中獎號碼 (10%)
  • (3)主程式中印出你猜中的號碼(10%)




#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define NUMBER_SIZE 6

void produce_number(int system_number[],int number_size);
int number_check(int user_number[],int system_nmuber[],int bingo[],int number_size);

void main (void)
{
	int system_number[NUMBER_SIZE],user_number[NUMBER_SIZE],bingo[NUMBER_SIZE],bingo_conter,i=0;
	//使用者輸入號碼
	while(i < NUMBER_SIZE)
	{
		int test_result=1;
		printf("please enter No. %d number >",i+1);
			scanf("%d",&user_number[i]);
		for(int j=0;j<i;j++)
			if(user_number[i]==user_number[j] || user_number[i] > 49)
				test_result=0;
		if(test_result)
			i++;
	}
	//產生號碼(開獎)
	produce_number(system_number,NUMBER_SIZE);
	//丟入驗證
	bingo_conter=number_check(user_number,system_number,bingo,NUMBER_SIZE);
	//顯示開獎結果
	printf("The number you choose :\n");
	for(int i=0;i<NUMBER_SIZE;i++)
		printf("%d\t",user_number[i]);
	printf("\n");
	printf("The Bingo number is \n");
	for(int i=0;i<NUMBER_SIZE;i++)
		printf("%d\t",system_number[i]);
	printf("\n");
	//告知中獎號碼數與中獎號碼
	if(bingo_conter)
	{
		printf("%d number(s) bingo,and the number(s) is\n",bingo_conter);
		for(int i=0;i<bingo_conter;i++)
			printf("%d\t",bingo[i]);
	}
	else
	{
		printf("沒中獎,請繼續努力");
	}
	printf("\n");
	system("pause");
}

void produce_number(int system_number[],int number_size)
{
	srand(time(NULL));
	int i=1;
	system_number[0]=1+rand()%49;
	while(i < number_size)
	{
		int temp=1+rand()%49,test_result=1;
		for(int j=0;j<i;j++)
			if(temp==system_number[j])
				test_result=0;
		if(test_result)
		{
			system_number[i]=temp;
			i++;
		}
	}
	/*
	for(int i=0;i<number_size;i++)
		system_number[i]=1+rand()%49;
		*/
}

int number_check(int user_number[],int system_nmuber[],int bingo[],int number_size)
{
	int bingo_counter=0;
	for(int i=0;i<number_size;i++)
	{
		for(int j=0;j<number_size;j++)
		{
			if(user_number[i]==system_nmuber[j])
			{
				bingo[bingo_counter]=user_number[i];
				bingo_counter++;
			}
		}
	}
	return bingo_counter;
}

沒有留言:

張貼留言