作者sleepgogo (補眠)
看板C_and_CPP
標題[問題] 有關function引出引入問題,以及dowhile的條件設定問題...
時間Thu Feb 12 22:17:37 2009
在寫一個程式,是有關於猜數字的小程式
因為是初學...所以function的引出引入值一直有問題...
以致不斷的有bug出現,主體使用dowhile迴圈設定打算再call ab時
引入x的值也就是4A時,導入while內就能結束
不過目前一直慘烈失敗阿...........囧
能否拜託各位高手解救,在這邊先謝謝大家了
以下附上原始碼:
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
//#define
int ab(x);
int main(void)
{
int i=1,real[4]={0,1,2,3},test[4];
do{
if(i>10)
{printf("你輸了,處罰是今天回家要洗碗!!");
break;}
printf("請輸入4個介於0~9之間的數字,不可重複:\n");
test[0]=getch();
putchar(test[0]);
test[1]=getch();
putchar(test[1]);
if(test[1]==test[0])
{printf("不可重複\n");
continue;}
test[2]=getch();
putchar(test[2]);
if(test[2]==test[0]||test[2]==test[1])
{printf("不可重複\n");
continue;}
test[3]=getch();
putchar(test[3]);
if(test[3]==test[0]||test[3]==test[1]||test[3]==test[2])
{printf("不可重複\n");
continue;}
ab(x);
printf("這是第%d次嘗試\n",i);
i++;
}while(x!=4);
system("pause");
return 0;
}
int ab(int test[4],int real[4])
{
int w,z,x=0,y=0;
for(w=0;w<4;W++)
for(z=0;z<4;Z++)
if(real[w]==test[z])
if( w == z )
x++;
else
y++;
printf(" %d A %d B",x,y);
if(x==4)
printf("you win!!");
return x;
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.137.76.153
※ 編輯: sleepgogo 來自: 220.137.76.153 (02/12 22:22)
→ tsaiminghan:你的MAIN內沒有宣告X, 就不能用X 02/12 22:40
→ tsaiminghan:老實說錯誤很多... 02/12 22:42
→ MOONRAKER:非常幽默的code 02/12 22:46
→ sleepgogo:bug是在x的地方...所以我沒辦法傳回FUNCTION的值嗎? 02/12 22:59
→ sleepgogo:所以我得在一開始就宣告X嗎@@? 02/12 23:00
→ tsaiminghan:還有你INT AB(X)原型宣告錯誤 02/12 23:00
→ tsaiminghan:AB內FOR迴圈最後依個不要大寫 02/12 23:01
→ tsaiminghan:RETRUN值的方法你搞錯了 02/12 23:02
→ tsaiminghan:回傳值 = AB(...); 而不是 AB(回傳值); 02/12 23:04
→ tsaiminghan:AB(傳入的參數); 02/12 23:04
→ tsaiminghan:你需要的時拿一本C語言重新看一下 02/12 23:05
→ tsaiminghan:或是找人當面講解一下, 有些基本的東西你搞錯了 02/12 23:07
→ sleepgogo:找到問題了....感謝T大.. 02/12 23:17
→ sleepgogo:其實我是第一次看Orz...很多都還不懂阿...囧 02/12 23:18
→ sleepgogo:練習也還不夠多... 02/12 23:19