• <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
            日韩久久无码免费毛片软件| 色综合合久久天天给综看| 久久久久久久久久久久久久| 久久久久亚洲精品日久生情| 久久超碰97人人做人人爱| 7国产欧美日韩综合天堂中文久久久久 | 久久久精品一区二区三区| 国产—久久香蕉国产线看观看 | 午夜精品久久影院蜜桃| 99久久99久久精品国产片果冻| 色综合久久久久无码专区| 亚洲国产成人久久精品动漫| 亚洲中文字幕伊人久久无码| 97精品伊人久久大香线蕉app| 日日狠狠久久偷偷色综合0| 久久综合给合久久国产免费| 精品人妻伦九区久久AAA片69| 中文字幕热久久久久久久| 中文字幕一区二区三区久久网站| 欧美亚洲国产精品久久| 国产精品日韩欧美久久综合| 人妻精品久久久久中文字幕一冢本| 久久免费香蕉视频| 久久精品www| 9久久9久久精品| 久久久久人妻一区二区三区| 九九热久久免费视频| 久久久久综合网久久| 久久精品无码一区二区无码| 伊人久久综合成人网| 亚洲国产高清精品线久久| 国产精品美女久久久免费 | 久久黄视频| 国产福利电影一区二区三区久久老子无码午夜伦不 | 久久人人爽人人爽人人片av麻烦| 国产69精品久久久久99尤物| 国产精品久久久久…| 久久亚洲精品中文字幕| 日本欧美久久久久免费播放网| 中文字幕无码久久精品青草| 亚洲午夜福利精品久久|