• <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>

            GLORY | 學習·記錄

            coding for life

            嘗試著讓自己用一個月的時間來適應這種生活,找到愉悅的心情。

            posted @ 2010-07-07 22:07 meglory 閱讀(136) | 評論 (0)編輯 收藏
            今天看到有位童鞋在TopLanguage上面提了個問題:
            int a[][3]={1,2,3,4,5,6};
            int (*b)[3]=a;

            不用編譯器,說說b里是什么?

            其實這種問題在《C專家編程》的P65中的神器解碼環中有很詳盡的解釋。
            在這里首先考察等式左邊的int (*b)[3]

            1.最左邊的標識符是b 表示b是...
            2.b的左邊是*
            表明b是指向...的指針
            3.*的左邊是左括號
            左括號把已經處理的部分聲明組合在一起,知道遇見相應的右括號
            4.(*b)左邊是方括號
            表示大小為3的數組
            5.剩下的符號形成基本類型int
            表明b是一個指針,它指向一個大小為3的int型數組。

            而把a的值賦給b,表明是將b指向a。

            之后sagasw給出一個demo,可以更清楚的了解指針相關各種。
            int main(int argc, char* argv[])
            {

                
            int a[][3]={1,2,3,4,5,6};
                
            int (*b)[3]=a;   
                printf(
            "a %p b %p \n", a, b);

                
            ++b;
                printf(
            "a1 %p a10 %p a11 %p b %p \n", a[1], &a[1][0], &a[1][1], b);

                
            ++b;
                printf(
            "a %p b %p \n", a[2], b);
                
            return 0;

            }

            posted @ 2010-06-09 23:09 meglory 閱讀(207) | 評論 (0)編輯 收藏
            //輸出漢字
            char temp[3];
            char c;

            temp[
            0]=getchar();
            temp[
            1]=getchar();
            temp[
            2]='\0';
                
            cout
            <<temp<<endl;
            posted @ 2010-05-12 21:45 meglory 閱讀(250) | 評論 (0)編輯 收藏

            這道題是很簡單的一個題目。我的題目理解稍微有點問題,所以花了一些時間才搞清楚。

            還碰巧發現了一個討論uva的論壇,很好很強大。就是里面一位老大的一句話讓我豁然開朗。
            關鍵在于題目里面關于word的定義。

            A “word” is defined as a consecutive sequence of letters (upper and/or lower case).

            Your program should output a word count for each line of input. Each word count should be printed on a separate line.

            一開始我以為直接判斷scanf(“%s”,s)的次數就ok。后來不停地wa。發現題目里面怎么連did!也算作一個單詞,不是連續的字母嗎?

            I did! I did! I did taw a putty tat.

            比如這個字符串用我的理解就是應該是八個word。后來想到,是一開始用讀入字符傳的思維導致了我的錯誤。這個題目是一個字符一個字符的處理的,并不是一下讀進來一個字符串然后一個個的判斷。

            想到這里,我豁然開朗。

            posted @ 2010-04-04 18:21 meglory 閱讀(237) | 評論 (0)編輯 收藏

            This is a blog post published via Windows Live Writer.

            This is a great tool.

            posted @ 2010-04-04 00:29 meglory 閱讀(225) | 評論 (0)編輯 收藏

            一開始在家里面有了一點思路,用兩重循環。后來真正開始在紙上寫代碼的時候發現只要一重循環即可。 

            #include<stdio.h>

            int main()
            {

                
            int a[10][10];
                
            int dx[]={1,0,-1,0};
                
            int dy[]={0,-1,0,1};
                
            int value=1;
                
            int i,j,n,x,y;

                scanf(
            "%d",&n);
                
            for(i=1;i<=n;i++)
                    
            for(j=1;j<=n;j++)
                        a[i][j]
            =0;

                
            //初始位置為(1,n),初始值為1
                x=1;
                y
            =n;
                i
            =0;
                a[x][y]
            =value++;

                
            //循環結束的條件為n*n個值已經賦完
                while(value<=n*n)
                {
                    
            //按照當前的方向進行探測
                    x+=dx[i];
                    y
            +=dy[i];

                    
            //如果符合條件,賦值
                    if(x>=1 && x<=&& y>=1 && y<=&& a[x][y]==0)
                        a[x][y]
            =value++;
                    
            //如果不符合條件,把坐標退回,方向進行逆時針旋轉
                    else
                    {
                        x
            -=dx[i];
                        y
            -=dy[i];
                        i
            =(i+1)%4;
                    }
                    printf(
            "\nvalue=%d\n",value);
                }

                
            for(i=1;i<=n;i++)
                {
                    
            for(j=1;j<=n;j++)
                        printf(
            "%d ",a[i][j]);
                    printf(
            "\n");
                }

                
            return 0;

            }

             后來看到書上的sample代碼,我覺著我的代碼顯然要好很多:-)

            posted @ 2010-03-29 22:53 meglory 閱讀(919) | 評論 (0)編輯 收藏

            用1,2,3,···,9 組成 3 個三位數 abc,defghi,每個數字恰好使用一次,要求abc:def:ghi=1:2:3。輸出所有解。

            題目特別寫出了提示:不必太動腦筋。(其實這句話讓我現在都不清楚我的解法是不是符合要求......)

            1 #include<stdio.h>
            2 #include<stdlib.h>
            3 int main()
            4 
            {
            5     int
            num;
            6     char
            chr;
            7     char a[10
            ];
            8     char temp[3
            ];
            9     char
            pos;
            10     //num*3<=987 所以 num<=329

            11     for(num=123;num<=329;num++)
            12 
                {
            13         itoa(num,temp,10
            );
            14 
                    strcpy(a,temp);
            15         itoa(num*2,temp,10
            );
            16 
                    strcat(a,temp);
            17         itoa(num*3,temp,10
            );
            18         strcat(a,temp);//a保存了num以及num*2和num*3組成的字符串

            19 
            20         for(chr='1';chr<='9' && (pos=strchr(a,chr))!=NULL;chr++)
            21 
                        ;
            22         if(pos!=
            NULL)
            23             printf("%d:%d:%d=1:2:3\n",num,num*2,num*3
            );       
            24 
                }
            25     return 0
            ;
            26 
            }
            27 

             今天繼續讀到了分數化小數題目,感覺挺簡單的一個問題。實際藏著一個我并不知道的printf妙用。

              輸入正整數a,b,c,輸出a/b的小數形式,精確到小數點后c位。a,b<=10^6,c<=100.例如a=1,b=6,c=4時應輸出0.1667.

            printf的特殊用法,對于m.n的格式可以用如下方法表示

                char ch[20];
                printf("%*.*s\n",m,n,ch);
                前邊的*定義的是總的寬度,后邊的定義的是輸出的個數。分別對應外面的參數m和n 。 這種方法的好處是可以在語句之外對參數m和n賦值,從而控制輸出格式。
            1 #include<stdio.h>
            2 int main()
            3 
            {
            4     int
            a,b,c;
            5     scanf("%d %d %d",&a,&b,&
            c);
            6     printf("%.*lf",c,(double)a/
            b);
            7     return 0
            ;
            8 }

            posted @ 2010-03-29 22:53 meglory 閱讀(970) | 評論 (3)編輯 收藏
            這里更多的是作為一個記錄的站點。
            cnblog寫了一段時間,最后打算還是放一些思考的東西在上面,而認識的幾個朋友讀到自己cnblog的博客也對技術內容不感興趣。
            決定把一些程序的記錄部分就要放在這里了。本打算把之前的一些帖子搬過來,后來想想自己重頭開始積累,也還不錯。
            posted @ 2010-03-28 23:13 meglory 閱讀(141) | 評論 (0)編輯 收藏
            僅列出標題
            共5頁: 1 2 3 4 5 

            導航

            隨筆分類

            隨筆檔案

            最新評論

            性做久久久久久久久浪潮| 国产成人精品久久免费动漫| 亚洲AV无码1区2区久久 | 精品久久久久香蕉网| 国内精品九九久久久精品| 久久青青草原精品国产| 精品国产乱码久久久久久浪潮| 久久se精品一区精品二区国产| 亚洲午夜精品久久久久久浪潮| 亚洲国产另类久久久精品| 成人综合伊人五月婷久久| 久久亚洲色一区二区三区| avtt天堂网久久精品| 国内精品久久久久久中文字幕| 久久精品国产亚洲AV影院| 日本精品一区二区久久久| 久久AV高清无码| 久久夜色精品国产www| 99精品久久精品一区二区| 一本久道久久综合狠狠躁AV| 国产精品久久久久jk制服| 怡红院日本一道日本久久| 区久久AAA片69亚洲 | 久久99久久99精品免视看动漫| 国产综合成人久久大片91| 久久久久久九九99精品| 国产精品99久久久精品无码| 亚洲国产精品久久久久婷婷软件 | 久久精品无码一区二区WWW| 久久精品免费一区二区三区| 久久99精品久久久久久hb无码| 欧美麻豆久久久久久中文| 国产农村妇女毛片精品久久| 久久国产影院| 久久婷婷色香五月综合激情| 99久久亚洲综合精品网站| 久久九九亚洲精品| 久久亚洲中文字幕精品一区四| 国产亚洲精午夜久久久久久| 国产精品九九久久免费视频 | 蜜臀久久99精品久久久久久小说|