奇奇怪怪書

main(a,b)
{
        scanf("%d%d",&a,&b);
        printf("%d",a+b);
}
//據說根據c99標準 main(隨便寫什麼都可以的樣子)
gcc警告然後還是可以編譯 
int a;b;main()
{
        scanf("%d%d",&a,&b);
        printf("%d",a+b);
}
//還是可以編譯就是 各種警告
float a,b;
main()
{
        for(;~scanf("%f",&a);)b+=a;
        printf("$%.2f",b/12);
}
//這個很好玩的樣子 ,退出for循環條件是 (~scanf("%f",&a)爲假)  不是很清楚,等下再研究scanf返回值 大概就是如果scanf返回值是-1,-1在計算機裏補碼是11111111(負數以補碼的形式出現)然後~取反就是0啦
關於 scanf 返回值是成功讀入並且匹配的數據的個數
scanf("%d %d",&a,&b);
函數返回值爲int型。如果a和b都被成功讀入,那麼scanf的返回值就是2;
如果只有a被成功讀入,返回值爲1;
如果a和b都未被成功讀入,返回值爲0;
如果遇到錯誤或遇到end of file,返回值爲EOF(EOF是一個宏 值就是-1啦)。end of file爲Ctrl+z 或者Ctrl+d。
main()
{
        int n;
        float a,b;
        while(scanf("%f",&b),b)//這個操作沒有玩過 用(,)
        {
                a=0.0;
                for(n=1;a<b;++n) a+=1.0/(float)(n+1);
                printf("%d card(s)\n",n-1);
        }
}
/*
逗號表達式 :
c語言提供一種特殊的運算符,逗號運算符,優先級別最低,它將兩個及其以上的式子聯接起來,從左往右逐個計算表達式,整個表達式的值爲最後一個表達式的值。如:(3+5,6+8)稱爲逗號表達式,其求解過程先表達式1,後表達式2,整個表達式值是表達式2的值,如:(3+5,6+8)的值是14,a=(a=3*5,a*4)的值是60,而(a=3*5,a*4)的值是60, a的值在逗號表達式裏一直是15,最後被逗號表達式賦值爲60,a的值最終爲60。【載自百度百科】
*/

//  以上來自《短碼之美》我是勤勞的記錄者    

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章