• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            f(sixleaves) = sixleaves

            重劍無鋒 大巧不工

              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
              95 隨筆 :: 0 文章 :: 7 評論 :: 0 Trackbacks
            被坑了,2小時的題目,==。題目難點主要在處理空格和輸出格式上。對于這種模擬題,我是先把框架寫好,在補充。
            寫得比較長,沒有進行重構,就這樣吧。getchar()等I/O雖然會讀取回車,但是要按下回車,產生中斷,在會結束輸
            告訴這些I/O函數來讀取==。總之這題目,沒什么特別的思想,完全是模擬題,能寫:?的語句,盡量寫,簡化代碼
            還有代碼寧愿嚴密啰嗦,也不要有Bug

            #include <stdio.h>

            #include <string.h>

            typedef struct {

                int r;

                int c;

            } Point;


            int main() {

                

                const int maxn = 5;

                char puzzle[maxn][maxn] = {0};

                int kase = 0;

                int first = 1;

                for (;;) {

                    

                    //  1.先讀取一個字符,看是不是Z,不是Z得看看是不是空字符

                    char ch;

                    ch = getchar();

                    if (ch == 'Z') break;

                    else {

                        puzzle[0][0] = ch;

                        first == 1? first = 0: printf("\n");

                    }

                    

                    Point empty;

                    if (ch == ' ') { empty.r = 0, empty.c = 0; }

                    

                    //  2.讀取Puzzle初始化布局

                    for (int i = 1; i < 25; ) {

                        ch = getchar();

                        if (ch == ' ') {

                            puzzle[ empty.r = i / 5 ][ empty.c = i % 5 ] = ch;

                            i++;

                        }

                        if (ch != ' ' && ch != '\n' && ch != '\t' && ch != '\r') {

                            puzzle[ i/5 ][ i%5 ] = ch;

                            i++;

                        }

                    }

                    

                    //  3.執行指令

                    int configuration = 1;

                    while ((ch = getchar()) != '0') {

                        

                        if (ch == '\n' || ch == ' ' || !configuration) continue;

                        int row = empty.r, col = empty.c;

                        if (configuration) {

                            switch (ch) {

                                    

                                case 'A':

                                    if (row - 1 >= 0) {

                                        puzzle[row][col] = puzzle[row - 1][col];

                                        puzzle[row - 1][col] = ' ';

                                        empty.r = row - 1;

                                        empty.c = col;

                                    }else {

                                        configuration = 0;

                                    }

                                    break;

                                case 'B':

                                    if (row + 1 < maxn) {

                                        puzzle[row][col] = puzzle[row + 1][col];

                                        puzzle[row + 1][col] = ' ';

                                        empty.r = row + 1;

                                        empty.c = col;

                                    }else {

                                        configuration = 0;

                                    }

                                    break;

                                case 'R':

                                    if (col + 1 < maxn) {

                                        puzzle[row][col] = puzzle[row][col + 1];

                                        puzzle[row][col + 1] = ' ';

                                        empty.r = row;

                                        empty.c = col + 1;

                                    }else {

                                        configuration = 0;

                                    }

                                    break;

                                case 'L':

                                    if (col - 1 >= 0) {

                                        puzzle[row][col] = puzzle[row][col - 1];

                                        puzzle[row][col - 1] = ' ';

                                        empty.r = row;

                                        empty.c = col - 1;

                                    }else {

                                        configuration = 0;

                                    }

                                    break;

                                default:

                                    configuration = 0;

                                    break;

                                    

                            }

                        }

                        

                    }

                    //  4.吃掉回車

                    ch = getchar();

                    

                    //  5.輸出

                    if (!configuration) {

                        printf("Puzzle #%d:\nThis puzzle has no final configuration.\n", ++kase);

                    }else {

                        printf("Puzzle #%d:\n", ++kase);

                        for (int row = 0; row < maxn; row++) {

                            

                            for (int col = 0; col < maxn; col++) {

                                

                                printf(col == maxn - 1 ? "%c" : "%c ", puzzle[row][col]);

                                

                            }

                            printf("\n");

                        }

                    }

                    

                }

                

                return 0;

            }

            posted on 2015-02-06 10:24 swp 閱讀(362) 評論(0)  編輯 收藏 引用 所屬分類: algorithm
            少妇久久久久久被弄高潮| 四虎影视久久久免费| 国产成人精品白浆久久69| A狠狠久久蜜臀婷色中文网| 国产精品久久久久aaaa| 久久精品国产72国产精福利| 色天使久久综合网天天| 99久久中文字幕| 无码八A片人妻少妇久久| 99久久777色| 久久久精品午夜免费不卡| 伊人 久久 精品| 女人香蕉久久**毛片精品| 免费精品久久天干天干| 99久久精品国产毛片| 久久久国产乱子伦精品作者| 久久人人爽人爽人人爽av | 国产午夜电影久久| 久久精品国产亚洲av麻豆蜜芽| 99久久精品国产一区二区| 久久久一本精品99久久精品88| 精品久久久久久国产三级| 久久九九亚洲精品| 久久精品国产亚洲AV大全| 99久久国产宗和精品1上映| 日本精品久久久久久久久免费| 成人资源影音先锋久久资源网| 色婷婷狠狠久久综合五月| 久久精品一区二区三区中文字幕| 久久AV高清无码| 日产精品久久久久久久性色| 国产精品99久久久久久宅男小说| 国内精品久久久久久久涩爱| 91久久精品视频| 久久久久久综合一区中文字幕| 久久青青草原精品国产| 久久无码人妻一区二区三区午夜 | 国产成人无码久久久精品一| 亚洲午夜久久久久妓女影院| 亚洲欧美成人综合久久久| 日日噜噜夜夜狠狠久久丁香五月|