辛苦大半天了:全部貼出
/*?filename:makefile1.c
function: Find?Number. Declare?an?array?of?10?integer?elements.? Use?'srand',?'rand'?and?'ctime'?functions?to?generate?random?numbers? from?1?to?99?and?fill?the?array.? The?numbers?may?repeat.?Print?the?selected?numbers. Ask?the?user?to?input?a?number?between?1-99.? Check?to?see?if?the?number?matches?any?of?the?selected?numbers.? Print?the?user?input?number?and?whether?there?is?or?is?not?a?match. Allow?the?user?to?repeat?the?search?until?a?0?is?input.*/?
/*?
編程思路:1、先定義已知數值的數組,編寫出該數組的查詢程序 2、再編寫生成隨機數組的程序模塊 3、將前兩組程序連接起來,調試完善程序 我的郵箱:zhanbo200541208@126.com 2010.3.6*/
#include?<stdio.h>?
#include?<time.h>
#define?N?10
/********************測試函數*********************************/?
int?check(int?my_input,?int?*my_array,?int?array_s)
{
int?i;? int?r; for(i=0;i<array_s;++i) { if(my_input?==?my_array[i])return?r?=?1;
else? r?=?0; } return?r;}
/*************************************************************/?
/**********************主函數*********************************/?
void?main()
{
int?check(int?my_input,?int?*my_array,?int?array_s);
int?my_array[N];? int?array_s?=?N; int?my_input;int?i,?temp;
/*****************產生隨機數組****************************/
time_t?t; srand((unsigned)?time(&t));? for(i=0;?i<10;?i++) {? while((temp=rand()%100)==0) my_array[i]?=?temp; }? /*以下代碼可除去,不影響程序功能*/printf("In?order?to?check?the?answer?conveniently\n");
printf("The?numbers?will?be?shown?here:\n");? for(i=0;?i<10;?i++) {? printf("%d?",?my_array[i]); }? printf("\n\n");/*********************************************************/?
/****************測試輸入數據*****************************/?
printf("Please?input?your?numbers(1-99):\n");
printf("Input?0?to?quit\n");?
scanf("%d",?&my_input);?
while(my_input)?{ if(check(my_input,?my_array,?array_s))printf("%d?is?a?match.\n",?my_input);?
elseprintf("%d?is?not?a?match.\n",?my_input);?
getchar();?/*這裏簡單的使用getchar()吃掉違法字符*/ scanf("%d",?&my_input);? }?/*********************************************************/?
}?
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//第二個工程,分別放在三個文件中。註意?filename
//?filename:main.cpp?
//我的郵箱:zhanbo200541208@126.com
//2010.3.6
#include?"helloworld.h"
#include<iostream>
using?namespace?std;
int?main(){
int?wins[N];
int?my_input;
int?index;?//在程序中index值為?0-10,為0表示沒有待查詢的值,其他表索引值?
int?yes?=?1;
bool?quit;
while(yes){?
draw(wins);
entry(wins,?my_input,?index,?quit);
if(quit==true)//quit為真則退出程序
break;
printOut(wins,?my_input,?index);
cout<<endl;
}
system("pause");
return?0;
}
/*?filename:helloworld.h?
*/
#ifndef?_HELLOWORLD_H
#define?_HELLOWORLD_H
#include?<iostream>
#define?N?10
void?draw(int?*wins);
void?entry(int?*wins,?int?&my_input,?int?&index,?bool?&quit);
int?check(int?wins[],?int?temp);//本函數在程序中實現了代碼重用?
//check返回值為0,表示沒有被查值 //check為1-10,表示索引值//我沒有把check放在主函數中,按照題目的意思,我把它放在了entry中
//draw,也用到了check,用於檢查重復隨機數
void?printOut(int?*wins,?int?&my_input,?int?&index);
#endif
/*?filename:helloworld.cpp?
*/
#include?"helloworld.h"?//note?the?code?is?somewhat?silly
#include?<iostream>?//addition?code?in?blue
#include?<time.h>
using?namespace?std;
void?draw(int?*wins)?{?
int?i,?temp;
time_t?t; srand((unsigned)?time(&t));? for(i=0;?i<10;?i++) {? temp?=?rand()%100+1;?//輸出從1到100的隨機數? while(check(wins,?temp))?//如果有相同值,則繼續產生隨機數?temp?=?rand()%100+1;?
wins[i]?=?temp;?
}?}
void?entry(int?*wins,?int?&my_input,?int?&index,?bool?&quit){?
cout<<"Input?0?when?you?want?to?quit:"<<endl;?
cout<<"Please?input?your?numbers(1-100):"<<endl;
cin>>my_input;?
while(my_input?<?0?||?my_input?>?100?){?
cout<<"Please?input?again."<<endl;
cin.clear();//臨時抄來的,不太清楚原理,能用?
cin.sync();?//清空數據流?
cin>>my_input;?
}
if(my_input?==?0)//如果輸入?0?,給quit賦值為真?
quit?=?true;
index?=?check(wins,?my_input);?//把檢查結果(0-10)賦給index}
int?check(int?wins[],?int?temp){?
int?i;?
int?r; for(i=0;i<N;++i) { if(wins[i]?==?temp)return?r?=?i+1;//返回temp在my_array中的索引值?
else? r?=?0; } return?r;?}
void?printOut(int?*wins,?int?&my_input,?int?&index){?
int?i;
cout<<"The?selected?numbers?are:"<<endl<<"";
for(i=0;?i<10;?i++)
{?
cout<<wins[i]<<"?";
}
cout<<endl;?
cout<<"Your?input?number?is:"<<my_input<<endl;
if(index){
cout<<"Congratulations!?You?won?the?lottery!"<<endl;
cout<<"The?index?of?the?number?you?input?is:"<<index<<endl;
}
else
cout<<"I'm?sorry!?There's?not?your?input?number!"<<endl
<<"Please?try?again!"<<endl;
}