English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

請問C語言的高手能幫我解答一下嗎?這個程式碼我試了很久就是不能編譯?是否有錯誤?

#include
#include
#include
#include

int aa[4],bb[4]; //aa[]=電腦產生的數字 bb[]=使用者輸入的數字

int cmpA() //比較位置且數字相同的函數
{
int a=0,n;
for(n=0;n<4;n++)
if(aa[n]==bb[n]) //假如兩者位置且數字相同
a++;
return(a);
}
int cmpB() //比較數字相同但位置不同的函數
{
int b=0,m,n;
for(m=0;m<4;m++)
for(n=0;n<4;n++)
if(bb[m]==aa[n]) //假如兩者數字相同但位置不同
b++;
return(b);
}
void main()
{
int i,j;
srand(time(NULL) % 60); //亂數種子產生
printf(\"遊戲開始覺先請按任意鍵\\n(Ctrl+q 離開)\\n\");
getch();
for(i=0;i<4;i++) //產生要使用者猜的四位數
{
aa[i]=rand()%10+48; //產生ASCII碼0~9的數字
for(j=0;j {
if(aa[i]==aa[j]) //電腦產生的數字不能重複
i--;
}
}
while(i<6) //假如猜中數字或使用者輸入Ctrl-q,則跳離
{
printf(\"輸入Ctrl-q則直接顯示答案\\n\");
printf(\"請輸入:\\n\");
for(i=0;i<4;i++) //使用者要輸入小於五個字元
{
bb[i]=getche(); //顯示輸入的數字字元
if(bb[i]==17) //假如輸入Ctrl-q則直接顯示答案
{
i=6;
break;
}
for(j=0;j if(bb[i]==bb[j]) //使用者輸入的數字不能重複
{
i=4;
printf(\"\\nyour number is overlap!\\n\");
break;
}
}
if(cmpA()==4) //假如使用者輸入的跟電腦完全相同
{
printf(\"\\nYOU WIN!!!\");
i=6;
}
else if(i<5)
printf(\" %dA%dB\\n\",cmpA(),cmpB()-cmpA()); //印出數字相同的訊息
}

printf(\"\\n正確答案是 :\"); //顯示答案
for(i=0;i<4;i++)
printf(\"%c\",aa[i]);
}

2006-05-19 15:51:38 · 2 個解答 · 發問者 Tunwei 3 in 電腦與網際網路 程式設計

另外能不能幫我解說這個程式怎麼run的,越詳細越好,絕不吝嗇我的點數

2006-05-20 06:32:29 · update #1

2 個解答

int  main(){int i,j;srand(time(NULL) % 60); //亂數種子產生printf("遊戲開始覺先請按任意鍵\n(Ctrl+q 離開)\n");getch();for(i=0;i<4;i++) //產生要使用者猜的四位數{aa[i]=rand()%10+48; //產生ASCII碼0~9的數字for(j=0;j

2006-05-19 18:13:18 · answer #1 · answered by Nothing 5 · 0 0

沒什麼問題吧!
編譯後跑起來正常,滿好玩的.
若是有問題最好是把錯誤訊息一起po出來.

2006-05-25 00:10:08 補充:
你這個不是大部分都已經寫好註解了嗎?

2006-05-19 16:21:17 · answer #2 · answered by chan 5 · 0 0

fedest.com, questions and answers