1. 程式人生 > 實用技巧 >Fastjson 處理JSON簡明教程(轉載)

Fastjson 處理JSON簡明教程(轉載)

四、實驗結論

1. 實驗任務1

#include <stdio.h>
int main() {
    int a=5, b=7, c=100, d, e, f;

    d = a/b*c;
    e = a*c/b;
    f = c/b*a;
    
    printf("d=%d, e=%d, f=%d\n",d,e,f);

    return 0;
}

數學計算式:5/7*100 5*100/7 100/7*5

原因:c語言中“/”作用為做除法取整數(舍餘數),而數學中作用為做除法取結果(不捨餘數)。因此,對於上面程式中每次進行除法運算均不能整除的情況,程式執行結果與數學計算結果不同。

2. 實驗任務2

// ex2.cpp

#include <stdio.h>
int main() {
    int x=1234;
    float f=123.456;
    double m=123.456;
    char ch='a';
    char a[]="Hello, world!"; // 定義一個數組a,陣列中存放字串常量hello,world!
    int y=3, z=4; 
    
    printf("%d %d\n", y, z);
    printf("y=%d, z=%d\n", y,z);
    printf("%8d,%2d\n
", x,x); printf("%f, %8f, %8.1f, %0.2f, %.2e\n",f,f,f,f,f); printf("%lf\n",m); printf("%3c\n", ch); printf("%s\n%15s\n%10.5s\n%2.5s\n%.3s\n",a,a,a,a,a); return 0; }

總結:(m,n均表示正整數)d 表示按十進位制整數輸出 md表示輸出寬度為m的十進位制整數 f表示按浮點數輸出 mf表示輸出寬度為m的十進位制整數 n.f表示按浮點數輸出且保留小數點後n位數(四捨五入) m.nf表示輸出寬度為m的浮點數且保留小數點後n位(四捨五入) .ne表示按指數形式輸出且對於底數保留小數點後n位數(四捨五入) lf表示輸出double型浮點數 mc表示輸出寬度為3的字元 s表示按字串輸出 ms表示寬度為m的字串 m.ns表示輸出寬度為m,輸出位數為n的字串

3.實驗任務3

// ex3.cpp
#include <stdio.h>
int main() {
    double x,y;
    char c1,c2,c3;
    int a1,a2,a3;
    
    scanf("%d%d%d",&a1,&a2,&a3);
    printf("%d%d%d\n",a1,a2,a3);
    scanf("%c%c%c",&c1,&c2,&c3);
    printf("%c%c%c\n",c1,c2,c3);
    scanf("%lf,%lf",&x,&y);
    printf("%lf,%lf\n",x,y);
    
    return 0;
} 

4、實驗任務4

// ex4.cpp
// 判斷字元型別 
#include <stdio.h>
int main() {
    char x;
    
    x = getchar();
    
    if(x>='0'&&x<='9') // 判斷x是數字字元表示式 
        printf("%c是數字字元\n", x);
    else if(x>='a'&&x<='z'||x>='A'&&x<='Z') // 判斷x是大寫或小寫英文字母的表示式 
        printf("%c是英文字母\n", x);
    else
        printf("%c是其它字元\n", x);
    
    
    return 0;
} 

5.實驗任務5

// ex5.cpp
#include <stdio.h>
int main() {
    char ans1, ans2;
    
    printf("複習了沒? (輸入y或Y表示複習了,輸入n或N表示沒複習) :  ");
    ans1 = getchar();  // 從鍵盤輸入一個字元,賦值給ans1
    
    getchar(); // 思考這裡為什麼要加這一行 
    
    printf("\n動手敲程式碼了沒? (輸入y或Y表示敲了,輸入n或N表示木有敲) :  ");
    ans2 = getchar();
    
    if(ans2=='y'&&ans1=='y'||ans1=='Y'&&ans2=='Y')
        printf("\n羅馬不是一天建成的:)\n");    
    else
        printf("\n羅馬不是一天毀滅的。。。\n");

    return 0;
} 

6、實驗任務6

//ex6.cpp
//等比求和
#include <stdio.h>
int main() {
    int b,n;
    int q=2,a=1;
    int sum=1;
    
    scanf("%d",&n);

    for(b=1;b<n;b++)
    {
        a*=q;
        sum+=a;
    }
    printf("n=%d時,sum=%d",n,sum);
    return 0;
}

五、實驗總結

通過本次實驗,我鞏固了前面學習的基本知識並能夠較為熟練的運用到程式設計過程中。嘗試了使用迴圈語句來進行數學計算,鍛鍊了自己設計演算法的思維。同時通過解決實驗過程中遇到的問題,提高了自己的程式設計速度,加深了對一些操作的印象。但是目前還對任務五中單獨一行的getchar()的作用尚不明確,也對任務三中十二十三行的修改不太確定。雖然獲得了正確結果,但是%f為什麼要改為%lf呢?