• <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 閱讀(364) 評論(0)  編輯 收藏 引用 所屬分類: algorithm
            亚洲а∨天堂久久精品9966| 99久久综合国产精品二区| 亚洲国产精品无码久久久久久曰| 久久久受www免费人成| 久久亚洲中文字幕精品一区| 亚洲色欲久久久综合网| 久久精品国产亚洲77777| 91麻精品国产91久久久久| 合区精品久久久中文字幕一区| 亚洲αv久久久噜噜噜噜噜| 精品免费久久久久国产一区| 久久久久se色偷偷亚洲精品av| .精品久久久麻豆国产精品| 久久综合久久鬼色| 精品午夜久久福利大片| 久久久久久伊人高潮影院| 亚洲综合婷婷久久| 国产午夜免费高清久久影院| 精品99久久aaa一级毛片| 国产精品美女久久久久| 亚洲国产成人久久综合区| 国产精品久久亚洲不卡动漫| 97久久婷婷五月综合色d啪蜜芽| 日本精品久久久久中文字幕| 人人狠狠综合久久88成人| 一本一本久久a久久精品综合麻豆| 久久精品国产亚洲AV嫖农村妇女| 久久99这里只有精品国产| 久久夜色撩人精品国产| 久久99国产一区二区三区| 久久国产乱子精品免费女| 久久精品亚洲日本波多野结衣| 久久婷婷色香五月综合激情 | 久久婷婷五月综合成人D啪| 国产精品熟女福利久久AV| 久久综合九色综合97_久久久 | 国产精品久久国产精品99盘| 中文字幕无码免费久久| 亚洲国产精品无码久久SM| 亚洲精品乱码久久久久久按摩| 久久精品国产亚洲AV久|