tag:blogger.com,1999:blog-2956810645962042332.post994484256869189089..comments2023-06-27T17:57:05.552+08:00Comments on Neil's Blogger: 猜數字遊戲 (幾A幾B) C語言短碼程式範例Neilhttp://www.blogger.com/profile/07496780013736645751noreply@blogger.comBlogger19125tag:blogger.com,1999:blog-2956810645962042332.post-76335486044938723212019-06-10T14:31:58.888+08:002019-06-10T14:31:58.888+08:00恩恩
恩恩<br />444http://neilchennc.blogspot.com/2010/05/ab-c.htmlnoreply@blogger.comtag:blogger.com,1999:blog-2956810645962042332.post-61908586959314349612018-01-01T23:58:55.822+08:002018-01-01T23:58:55.822+08:00想請問怎麼轉寫成流程圖?謝謝你想請問怎麼轉寫成流程圖?謝謝你Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-2956810645962042332.post-34552508294951022492018-01-01T23:58:54.143+08:002018-01-01T23:58:54.143+08:00想請問怎麼轉寫成流程圖?謝謝你想請問怎麼轉寫成流程圖?謝謝你Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-2956810645962042332.post-73820353450829232672017-04-25T18:00:51.532+08:002017-04-25T18:00:51.532+08:00請問如何讓輸入的數字 出現在冒號後面請問如何讓輸入的數字 出現在冒號後面Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-2956810645962042332.post-1075163101564821702013-06-09T13:48:02.793+08:002013-06-09T13:48:02.793+08:00稍微這樣改如何?
g:na=nb=i=scanf("%4s",un)&0...稍微這樣改如何?<br />g:na=nb=i=scanf("%4s",un)&0;<br />fflush(stdin);<br />for(;i<4;i++) for(j=0;j<4;j++) <br />if(un[i]==un[j]&&i!=j) {printf("不合法數字!請重新輸入!\n");goto g;}<br />for(i=0;i<4;i++) for(j=0;j<4;j++) un[i]==cn[j]&&(i==j?na++:nb++); //計算幾A幾BAnonymousnoreply@blogger.comtag:blogger.com,1999:blog-2956810645962042332.post-81168352240360641952012-11-28T13:17:46.730+08:002012-11-28T13:17:46.730+08:00請問如果內定答案為4801的話要怎麼改?請問如果內定答案為4801的話要怎麼改?Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-2956810645962042332.post-61635458223158267752012-10-26T15:31:29.201+08:002012-10-26T15:31:29.201+08:00大四了~應該是讓電腦去猜別人的數字
且在5~7次之內猜出來大四了~應該是讓電腦去猜別人的數字<br />且在5~7次之內猜出來Castwinghttps://www.blogger.com/profile/11146204403438899848noreply@blogger.comtag:blogger.com,1999:blog-2956810645962042332.post-3330951748943660142012-04-29T17:40:20.432+08:002012-04-29T17:40:20.432+08:00C++ 的warning\246 是什麼C++ 的warning\246 是什麼Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-2956810645962042332.post-1075693526631759572012-04-26T20:16:16.870+08:002012-04-26T20:16:16.870+08:00#include
#include
#include
stdio.h 和 stdlib.h
是...#include <br />#include <br />#include <br />stdio.h 和 stdlib.h<br />是啥意思Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-2956810645962042332.post-54646398826250302772012-04-23T05:29:47.553+08:002012-04-23T05:29:47.553+08:00請問na=nb=i=scanf("%4s",un)&0; fflush(...請問na=nb=i=scanf("%4s",un)&0; fflush(stdin); <br /><br />這句話是甚麼意思?Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-2956810645962042332.post-12365328162350457902011-12-22T23:46:13.476+08:002011-12-22T23:46:13.476+08:00改成這樣OK了,不過有點久@@
#include
#include
#include
#inc...改成這樣OK了,不過有點久@@<br />#include <br />#include <br />#include <br />#include <br />#include <br />#define SIZE 4<br />using namespace std;<br /><br />bool insert(char d[3024][4], char n[9], int c)<br />{<br /> for(int i = 0 ; i<4 ; ++i)<br /> d[c][i] = n[rand()%9];<br /> return true;<br />}<br /><br />bool modifyNum(char d[3024][4], int count, int check)<br />{<br /> //與自己相同<br /> bool selfSame = (d[count][0]==d[count][1] ||<br /> d[count][0]==d[count][2] ||<br /> d[count][0]==d[count][3] ||<br /> d[count][1]==d[count][2] ||<br /> d[count][1]==d[count][3] ||<br /> d[count][2]==d[count][3]);<br /> //與別人相同<br /> bool otherSame = (d[count][0]==d[check][0] &&<br /> d[count][1]==d[check][1] &&<br /> d[count][2]==d[check][2] &&<br /> d[count][3]==d[check][3]);<br /><br /> if( selfSame || otherSame){<br /> //cout << 1 << endl;<br /> return true;<br /> }<br /> else{<br /> //cout << 0 << endl;<br /> return false;<br /> }<br />}<br /><br />void initialData(char data[3024][4])<br />{<br /> char num[] = {'1','2','3','4','5','6','7','8','9'};<br /> int randNum[SIZE] = {-1};<br /> <br /> <br /> for(int count = 0 ; count < 3024 && insert(data, num, count) ;++count)<br /> for(int check = 0 ; check < count ; ++check) <br /> modifyNum(data, count, check) && count--;<br /><br />}<br /><br />void outPutData(char data[3024][4])<br />{<br /> for(int i=0;i<3024;i++){<br /> for(int j=0;j<4;j++)<br /> cout << data[i][j];<br /> cout << endl;<br /> }<br />}<br /><br />int main()<br />{<br /> char Memory[3024][4] = {'\0'};<br /> srand(time(0));<br /> initialData(Memory);<br /> outPutData(Memory);<br /> system("pause");<br /> return 0;<br />}Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-2956810645962042332.post-54709495257414382762011-12-22T23:42:16.229+08:002011-12-22T23:42:16.229+08:00等等......
我居然insert一樣的rand()%9
囧等等......<br />我居然insert一樣的rand()%9<br />囧Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-2956810645962042332.post-51876366858094935432011-12-22T23:33:59.095+08:002011-12-22T23:33:59.095+08:00謝謝版大,不過如果亂排法cn[j]==cn[i]&&i--
改成4bit型式1234...謝謝版大,不過如果亂排法cn[j]==cn[i]&&i--<br />改成4bit型式1234,1235,.....會跑很久<br />因為會一直改.............<br /><br />#include <br />#include <br />#include <br />#include <br />#include <br />#define SIZE 4<br />using namespace std;<br /><br />bool insert(char d[3024][4], char n[9], int c ,int rnd)<br />{<br /> for(int i = 0 ; i<4 ; ++i)<br /> d[c][i] = n[rnd];<br /> return true;<br />}<br /><br />bool modifyNum(char d[3024][4], int count, int check)<br />{<br /> //與自己相同<br /> bool selfSame = (d[count][0]==d[count][1] ||<br /> d[count][0]==d[count][2] ||<br /> d[count][0]==d[count][3] ||<br /> d[count][1]==d[count][2] ||<br /> d[count][1]==d[count][3] ||<br /> d[count][2]==d[count][3]);<br /> //與別人相同<br /> bool otherSame = (d[count][0]==d[check][0] &&<br /> d[count][1]==d[check][1] &&<br /> d[count][2]==d[check][2] &&<br /> d[count][3]==d[check][3]);<br /><br /> if( selfSame || otherSame){<br /> cout << 1 << endl;<br /> return true;<br /> }<br /> else{<br /> cout << 0 << endl;<br /> return false;<br /> }<br />}<br /><br />void initialDate(char data[3024][4])<br />{<br /> char num[] = {'1','2','3','4','5','6','7','8','9'};<br /> int randNum[SIZE] = {-1};<br /> <br /> <br /> for(int count = 0 ; count < 9 && insert(data, num, count,rand()%9) ;++count)<br /> for(int check = 0 ; check < count ; ++check) <br /> modifyNum(data, count, check) && count--;<br /><br />}<br /><br />void outPutData(char data[3024][4])<br />{<br /> for(int i=0;i<9;i++){<br /> for(int j=0;j<4;j++)<br /> cout << data[i][j];<br /> cout << endl;<br /> }<br />}<br /><br />int main()<br />{<br /> char Memory[3024][4] = {'\0'};<br /> srand(time(0));<br /> initialDate(Memory);<br /> outPutData(Memory);<br /> system("pause");<br /> return 0;<br />}<br />不知道要如何判斷呢?Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-2956810645962042332.post-10766383224255366952011-12-13T05:57:01.800+08:002011-12-13T05:57:01.800+08:00To 5樓:
沒錯,基本上你講得都對
因為程式有由左至右判斷的特性
所以以這行來說
na-4&am...To 5樓:<br /><br />沒錯,基本上你講得都對<br />因為程式有由左至右判斷的特性<br />所以以這行來說<br />na-4&&--times&&printf("結果:%dA%dB,還有%d次機會...\n", na,nb,times);<br />如果na-4不成立(意思就是na=4),則--times跟printf不會執行<br />如果na-4成立,--times不成立,則printf不會執行<br />依此類推<br /><br />還有要注意的就是--times這是先減1在判斷times是多少<br />如果是times--則是先判斷times然後再減1Neilhttps://www.blogger.com/profile/07496780013736645751noreply@blogger.comtag:blogger.com,1999:blog-2956810645962042332.post-51468519937670967062011-12-10T21:05:41.831+08:002011-12-10T21:05:41.831+08:00大一新生,學C語言2個禮拜(也是要寫這個作業)
想問問您的想法是不是這樣:
1.
cn[j]==cn...大一新生,學C語言2個禮拜(也是要寫這個作業)<br />想問問您的想法是不是這樣:<br />1.<br />cn[j]==cn[i]&&i--; //檢查重複<br />把目前的電腦數字全部檢查,若相同且i不是0<br />則i減1重新產生<br /><br />2.<br />for(;i<4;i++) for(j=0;j<4;j++) un[i]==cn[j]&&(i==j?na++:nb++); //計算幾A幾B<br /><br />把目前的電腦數字全部檢查,若相同看i和j是不是同個位子<br />是: A+1 否: B+1<br /><br />3.<br />na-4&&--times&&printf("結果:%dA%dB,還有%d次機會...\n", na,nb,times);<br />na是4時不會印,其他照印<br />且na是4時打破do while roop<br /><br />4.<br />na==4?puts("您猜對了!"):printf("失敗,猜超過10次,答案是%s\n",cn);<br />印出解果<br /><br />是這樣嗎?<br />如果不是還請指教,畢竟我是新手.....0.0Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-2956810645962042332.post-84978473115757108092011-11-01T01:16:13.445+08:002011-11-01T01:16:13.445+08:00cn[j]==cn[i]&&i--
這句實在寫得太妙了!!cn[j]==cn[i]&&i--<br />這句實在寫得太妙了!!Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-2956810645962042332.post-6258593637895337532011-01-03T10:16:33.539+08:002011-01-03T10:16:33.539+08:00嗯 我知道了謝謝Neil大的指導嗯 我知道了謝謝Neil大的指導Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-2956810645962042332.post-58078142932077200862011-01-03T09:55:28.620+08:002011-01-03T09:55:28.620+08:00因為rand()%10產生出來的是0~9的數字型態(int)
而+48是因為對應到ASCII表的字元...因為rand()%10產生出來的是0~9的數字型態(int)<br />而+48是因為對應到ASCII表的字元型態(char)<br />48~57分別對應到0~9的字元<br /><br />您可以去google查「ASCII」看看囉~Neilhttps://www.blogger.com/profile/07496780013736645751noreply@blogger.comtag:blogger.com,1999:blog-2956810645962042332.post-28282426805210362362011-01-02T23:51:03.983+08:002011-01-02T23:51:03.983+08:00不好意思 可以問一下為什麼 rand()%10 <-(我知道這樣取亂數的範圍是0~9) 為什...不好意思 可以問一下為什麼 rand()%10 <-(我知道這樣取亂數的範圍是0~9) 為什麼還要+48呢? 然後不加會錯? (而且加其他數也會錯)<br /><br />我是新手 如果太笨 請不要笑太大聲~"~Anonymousnoreply@blogger.com