• <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 閱讀(367) 評論(0)  編輯 收藏 引用 所屬分類: algorithm
            久久久久久亚洲精品成人| 久久综合久久综合九色| 色综合久久中文字幕综合网| 久久亚洲国产成人影院网站| 日本WV一本一道久久香蕉| 亚洲国产精品成人久久| 国内精品久久久久久野外| 国产精品九九久久免费视频 | 久久久久久精品久久久久| 国产综合久久久久久鬼色| 7国产欧美日韩综合天堂中文久久久久| 国产精品美女久久久免费| 久久久久久国产a免费观看黄色大片| 色综合久久久久综合体桃花网| 国产成人精品久久一区二区三区av| 最新久久免费视频| 国产成人久久久精品二区三区| 精品熟女少妇AV免费久久| 成人精品一区二区久久久| 亚洲国产欧洲综合997久久| 青青青青久久精品国产h久久精品五福影院1421 | 国内精品久久久人妻中文字幕| 精品久久久久久久久久久久久久久| 久久人人爽人人爽人人片AV高清 | 色综合色天天久久婷婷基地| 午夜精品久久久久久影视riav| 99精品伊人久久久大香线蕉| 久久久国产精品亚洲一区| 国产69精品久久久久观看软件| 99久久无码一区人妻| 青草影院天堂男人久久| yy6080久久| 国产69精品久久久久观看软件| 亚洲欧洲精品成人久久奇米网| 久久嫩草影院免费看夜色| 国产高清美女一级a毛片久久w| 日韩亚洲欧美久久久www综合网| 国产精品久久久久久影院| 久久精品中文闷骚内射| 久久久久久国产精品无码超碰| 久久亚洲精品中文字幕|