1.可供使用者輸入5組樂透號碼,一組號碼有4個數字,每個數字介於0~9之間;
-樂透號碼請用一個二維陣列儲存
-請寫一個樂透號碼輸入函式,該函式可供輸入一組樂透號碼,主程式則呼叫該函式5次
-輸入的4個號碼不能重覆
-樂透號碼請用一個二維陣列儲存
-請寫一個樂透號碼輸入函式,該函式可供輸入一組樂透號碼,主程式則呼叫該函式5次
-輸入的4個號碼不能重覆
2.請將使用者輸入的各組號碼由小到大排序
-請寫一個號碼排序函式,該函式可排序一組樂透號碼,主程式則呼叫該函式5次
-排序方式,例如:原號碼7 6 5 9 排序後為 5 6 7 9
-請寫一個號碼排序函式,該函式可排序一組樂透號碼,主程式則呼叫該函式5次
-排序方式,例如:原號碼7 6 5 9 排序後為 5 6 7 9
3.產生一組樂透中獎號碼
-請寫成可產生一組樂透號碼的函式供呼叫
-產生的4個號碼不能重覆
-呼叫上一步驟的號碼排序函式排序
-請寫成可產生一組樂透號碼的函式供呼叫
-產生的4個號碼不能重覆
-呼叫上一步驟的號碼排序函式排序
4.對獎及列印中獎情形
-請寫一個對獎函式可供檢查一組樂透號碼是否中獎,並列印中獎情形,主程式則呼叫該函式5次
-獎項
-4個數字全中, 獎金10000
-中3個數字,獎金1000
-其它,無
-請寫一個對獎函式可供檢查一組樂透號碼是否中獎,並列印中獎情形,主程式則呼叫該函式5次
-獎項
-4個數字全中, 獎金10000
-中3個數字,獎金1000
-其它,無
5.詢問是否要繼續對獎,如果是則回到步驟1繼續玩(不使用goto指令)。
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define SET 5
#define SIZE 4
void EnterNumber( int a[SET][SIZE],int set,int size);
void bbsort( int a[SET][SIZE],int set,int size);
void lottery( int o[SIZE],int size);
void same0( int o[SIZE],int a[SET][SIZE],int set,int size);
void same1( int o[SIZE],int a[SET][SIZE],int set,int size);
void same2( int o[SIZE],int a[SET][SIZE],int set,int size);
void same3( int o[SIZE],int a[SET][SIZE],int set,int size);
void same4( int o[SIZE],int a[SET][SIZE],int set,int size);
int main(void)
{
int i,j;
int l[SET][SIZE]={{0}};
int o[SIZE];
int same[5]={0,1,2,3,4};
printf("請選5組4個號碼,範圍0~9,不能重複\n");
EnterNumber(l,SET,SIZE);
bbsort(l,SET,SIZE);
for( i=0;i<SET;i++){
printf("第 %d 組 :",i+1);
for( j=0;j<SIZE;j++){
printf("%3d ",l[i][j]);}
for( j=0;j<1;j++){
printf("\n");}}
lottery(o,SIZE);
printf("\n");
same0(o,l,SET,SIZE);
same1(o,l,SET,SIZE);
same2(o,l,SET,SIZE);
same3(o,l,SET,SIZE);
same4(o,l,SET,SIZE);
printf("\n");
system("pause");
return 0;
}
void EnterNumber(int a[SET][SIZE],int set,int size)
{
int i,j,k;
for( i=0;i<SET;i++){
printf("%d. ",i+1);
for(j=0;j<SIZE;j++){
scanf("%d",&a[i][j]);
if(a[i][j]>9 || a[i][j]<0){
printf("第 %d 個數字超出範圍 請重新輸入: ",j+1);
j--;}//End if
for(k=0 ; k<j; k++){
if(a[i][k]==a[i][j]){
printf("第 %d 個數字重複請重新輸入: ",j+1);
j--;}
}
}
}
}
void bbsort( int a[SET][SIZE],int set,int size)
{
int pass,hold,i,j;
for(i=0;i<SET;i++){
for(pass=1;pass<SIZE;pass++){
for(j=0;j<SIZE-1;j++){
if(a[i][j]>a[i][j+1]){
hold=a[i][j];
a[i][j]=a[i][j+1];
a[i][j+1]=hold;}
}
}
}
}
void lottery( int o[SIZE],int size)
{
int i,j,pass,hold;
srand(time(NULL));
printf("第 10224073 期 樂透開獎 :");
for(i=0;i<SIZE;i++){
o[i]=rand()%10;
for(j=0;j<i;j++){
if(o[j]==o[i]){
i--;}
}
}
for(pass=1;pass<SIZE;pass++){
for(i=0;i<SIZE-1;i++){
if(o[i]>o[i+1]){
hold=o[i];
o[i]=o[i+1];
o[i+1]=hold;}
}
}
for(i=0;i<SIZE;i++){
printf("%3d",o[i]);}
}
void same0( int o[SIZE],int a[SET][SIZE],int set,int size)
{
int i,j,k,counter=0;
for(j=0;j<SIZE;j++){
for(k=0;k<SIZE;k++){
if(a[0][j]==o[k])
++counter;
}
}
if(counter==0)
printf("第一組一個都沒中 真不簡單 \n");
if(counter==1)
printf("第一組只中1個 \n");
if(counter==2)
printf("第一組只中2個 \n");
if(counter==3)
printf("第一組中3個 獲得獎金1000元 \n");
if(counter==4)
printf("第一組居然中了4個 挖賽 WOW 獲得獎金10000元 \n");
}
void same1( int o[SIZE],int a[SET][SIZE],int set,int size)
{
int i,j,k,counter=0;
for(j=0;j<SIZE;j++){
for(k=0;k<SIZE;k++){
if(a[1][j]==o[k])
++counter;
}
}
if(counter==0)
printf("第二組一個都沒中 真不簡單 \n");
if(counter==1)
printf("第二組只中1個 \n");
if(counter==2)
printf("第二組只中2個 \n");
if(counter==3)
printf("第二組中3個 獲得獎金1000元 \n");
if(counter==4)
printf("第二組居然中了4個 挖賽 WOW 獲得獎金10000元 \n");
}
void same2( int o[SIZE],int a[SET][SIZE],int set,int size)
{
int i,j,k,counter=0;
for(j=0;j<SIZE;j++){
for(k=0;k<SIZE;k++){
if(a[2][j]==o[k])
++counter;
}
}
if(counter==0)
printf("第三組一個都沒中 真不簡單 \n");
if(counter==1)
printf("第三組只中1個 \n");
if(counter==2)
printf("第三組只中2個 \n");
if(counter==3)
printf("第三組中3個 獲得獎金1000元 \n");
if(counter==4)
printf("第三組居然中了4個 挖賽 WOW 獲得獎金10000元 \n");
}
void same3( int o[SIZE],int a[SET][SIZE],int set,int size)
{
int i,j,k,counter=0;
for(j=0;j<SIZE;j++){
for(k=0;k<SIZE;k++){
if(a[3][j]==o[k])
++counter;
}
}
if(counter==0)
printf("第四組一個都沒中 真不簡單 \n");
if(counter==1)
printf("第四組只中1個 \n");
if(counter==2)
printf("第四組只中2個 \n");
if(counter==3)
printf("第四組中3個 獲得獎金1000元 \n");
if(counter==4)
printf("第四組居然中了4個 挖賽 WOW 獲得獎金10000元 \n");
}
void same4( int o[SIZE],int a[SET][SIZE],int set,int size)
{
int i,j,k,counter=0;
for(j=0;j<SIZE;j++){
for(k=0;k<SIZE;k++){
if(a[4][j]==o[k])
++counter;
}
}
if(counter==0)
printf("第五組一個都沒中 真不簡單 \n");
if(counter==1)
printf("第五組只中1個 \n");
if(counter==2)
printf("第五組只中2個 \n");
if(counter==3)
printf("第五組中3個 獲得獎金1000元 \n");
if(counter==4)
printf("第五組居然中了4個 挖賽 WOW 獲得獎金10000元 \n");
}
沒有留言:
張貼留言