實驗1 C語言開發環境使用和資料型別、運算子、表示式
阿新 • • 發佈:2021-10-28
一、實驗結論
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.打字速度、正確率有待提升,有些符號的位置記不清,格式也有很多記不清。
現在程式碼都是現成的,如果讓我自己寫我能寫得出來嗎?應該有自己的思考,而不是隻去機械地敲擊鍵盤