1. 程式人生 > 其它 >實驗1 C語言開發環境使用和資料型別、運算子、表示式

實驗1 C語言開發環境使用和資料型別、運算子、表示式

一、實驗結論

1.

#include<stdio.h>
int main()
{
    printf(" o\n");
    printf("<H>\n");
    printf("I I\n");
    
    printf(" o\n");
    printf("<H>\n");
    printf("I I\n");
    return 0;
}

#include<stdio.h>
int main()
{
    printf(" o     o\n");
    printf("<H>   <H>\n
"); printf("I I I I\n"); return 0; }

2.

#include<stdio.h>
int main()
{
    int x,y;
    int r1,r2,r3,r4;
    
    x=1;
    y=2;
    
    r1=x+y;
    r2=x-y;
    r3=x*y;
    r4=x/y;
    
    printf("r1 = %d\n",r1);
    printf("r2 = %d\n",r2);
    printf("r3 = %d\n",r3);
    printf(
"r4 = %d\n",r4); return 0; }
#include<stdio.h>
int main()
{
    float x,y;
    float r1,r2,r3,r4;
    
    x=1;
    y=2;
    
    r1=x+y;
    r2=x-y;
    r3=x*y;
    r4=x/y;
    
    printf("r1 = %f\n",r1);
    printf("r2 = %f\n",r2);
    printf("r3 = %f\n",r3);
    printf("r4 = %f\n
",r4); return 0; }

原因:兩次定義的變數資料型別不同,第一次是整形,只保留整數餘數不顯示;第二次是浮點型,結果是小數點後六位。

3.

#include<stdio.h>
int main()
{
    int n,r1,r2,r3,r4;
    
    n=100;
    
    r1=n*(n+1)/2;
    r2=(n+1)*n/2;
    r3=n/2*(n+1);
    r4=(n+1)/2*n;
    
    printf("n=%d\n",n);
    printf("r1=%d\n",r1);
    printf("r2=%d\n",r2);
    printf("r3=%d\n",r3);
    printf("r4=%d\n",r4);
    
    return 0;
}
#include<stdio.h>
int main()
{
    int n,r1,r2,r3,r4;
    
    n=101;
    
    r1=n*(n+1)/2;
    r2=(n+1)*n/2;
    r3=n/2*(n+1);
    r4=(n+1)/2*n;
    
    printf("n=%d\n",n);
    printf("r1=%d\n",r1);
    printf("r2=%d\n",r2);
    printf("r3=%d\n",r3);
    printf("r4=%d\n",r4);
    
    return 0;
}

數學計算式:

原因:n取偶數,r4先用偶數+1即一個奇數/2,由於定義r4的資料型別是整型,所以只取其整數部分,漏了餘數,所以結果與其他可以整除的不一樣;

n取奇數,r3先用奇數+1即一個偶數/2,由於定義r3的資料型別是整型,所以只取其整數部分,漏了餘數,所以結果與其他可以整除的不一樣。

4.

#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("%.1f,%.1f\n",x,y);
    
    return 0;
    
}

5.

#include<stdio.h>
int main()
{
    int a1,a2;
    char c1,c2;
    
    scanf("%d%c%d%c",&a1,&c1,&a2,&c2);
    printf("a1=%d,a2=%d\n",a1,a2);
    printf("c1=%c,c2=%c\n",c1,c2);
    
    return 0;
}

6.

#include<stdio.h>
int main()
{
    int answer;
    char words[5000];
    
    printf("網課學習讓一些人歡喜一些人憂。\n");
    printf("1.作為一個宅,社恐,覺得這樣很好。有網路,自主學習,很ok。\n");
    printf("2.不喜,不喜,很不喜。眼睛快瞎了。腦袋有點卡…\n");
    printf("3,中間派,不知道,說不清。\n");
    printf("4.其他…\n");
    printf("你的選擇: ");
    scanf("%d",&answer);
    if(answer==4){
        printf("請補充說明你的想法: \n");
        getchar();
        gets(words);
    } 
    printf("\n");
    printf("當遇到問題時,你會選擇:\n");
    printf("1.遇到問題,就解決問題。不懂的,搜尋式學習,逐個攻破。\n");
    printf("2.遇到問題,不高興。然後,…,沒有了。\n");
    printf("3.其他…\n");
    printf("你的選擇: ");
    scanf("%d",&answer);
    
    if(answer==1){
        printf(":)\n");
    }
    else if(answer==2){
        printf("這樣不能解決問題啊…我們選擇1好不好:)\n");
    }
    else if(answer==3){
        printf("請補充說明你的想法: \n");
        getchar();
        gets(words);
    } 
    return 0;
}

沒有getchar不能輸入補充資訊,功能也是輸入資訊。

二、實驗總結

1.資料型別對於結果的影響,定義 scanf printf的應用

2.打字速度、正確率有待提升,有些符號的位置記不清,格式也有很多記不清。

現在程式碼都是現成的,如果讓我自己寫我能寫得出來嗎?應該有自己的思考,而不是隻去機械地敲擊鍵盤