本周學習總結
本周是我們開始學習高級語言程序設計的第一周,選用的編程語言是C語言。面對着繁多的知識點朝我飛來,我還是十分頭疼信心滿滿,相信自己學有所成。這門課的實踐性非常強,光看課表卻不刷題是完全不行的。因此,要在做題的過程中,了解、鞏固相關知識。
導航:
輸入與輸出—在屏幕上顯示"Hello World!"
實驗1-1 -輸入輸出格式化控制 Hello World!
本題要求編寫程序,輸出一個短句“Hello World!”。
輸入格式:
本題目沒有輸入。
輸出格式:
在一行中輸出短句“Hello World!”。
示例代碼:
/*我是注釋*/
#include<stdio.h> //編譯預處理命令
int main() //定義主函數main
{
printf("Hello World!"); //調用printf()函數輸出文字
return 0; //返回整數 0,代表程序運行正常
}
看書了解printf( )函數后,強烈的好奇心驅使着我——那輸入函數是什么呢?那就是scanf( )函數,同樣在系統文件 stdio.h 中聲明(書p27)。
簡單數據處理
-
常量和變量
數據有常量和變量之分,不能改變值的是常量,可以改變值的是變量。那么該如何聲明一個變量:
類型名 變量名
Ps : 取名字的時候不能包含空格、類型名、標點符號和運算符等。 - 基本數據類型
詳見這里 - 算術運算
運算符 + - * / % 名稱 加 減 乘 除 模(取余) 優先級 低 高 - 賦值運算
變量 = 表達式; //計算表達式的值,然后將其賦給“ = ”左側的變量
實驗2-2-7-表達式 整數四則運算
本題要求編寫程序,計算2個正整數的和、差、積、商並輸出。題目保證輸入和輸出全部在整型范圍內
輸入格式:
輸入在一行中給出2個正整數A和B。
輸出格式:
在4行中按照格式“A 運算符 B = 結果”順序輸出和、差、積、商。
輸入樣例:
3 2輸出樣例:
3 + 2 = 5 3 - 2 = 1 3 * 2 = 6 3 / 2 = 1
示例代碼:
#include<stdio.h>
int main()
{
int a,b;
scanf("%d %d",&a,&b);
printf("%d + %d = %d\n%d - %d = %d\n%d * %d = %d\n%d / %d = %d",a,b,a+b,a,b,a-b,a,b,a*b,a,b,a/b);// '\n' 是換行
return 0;
}
接下來呢,咱想整個計算器,但又不想像上面那樣把加減乘除全都來一次,只想輸出我想要的,那這該怎么整呢?
分支結構
- 關系運算符
運算符 < <= > >= == != 名稱 小於 小於或等於 大於 大於或等於 等於 不等於 - if-else 語句
一般形式為 : if ( 表達式 )
語句1;
else
語句2;
- switch 語句
一般形式為:switch ( 表達式 ) {
case 常量表達式1 : 語句段1; break;
.....
case 常量表達式n : 語句段n; break;
default : 語句段n+1; break;
}

switch 流程圖
L1-5【例3-5】 求解簡單的四則運算表達式 (10 分)
輸入一個四則運算表達式,輸出運算結果,要求對除數為0的情況作特別處理。題目保證輸入與輸出均在雙精度范圍內。
輸入格式:
輸入在一行中依次輸入操作數1、運算符、操作數2,其間沒有空格,操作數的數據類型為實型。
輸出格式:
在一行中輸出表達式的運算結果,保留兩位小數。
如果除法分母為0,則輸出錯誤信息“Divisor can not be 0!”;如果輸入了除加減乘除以外的非法運算符,則輸出錯誤信息“Unknown operator!”。
輸入樣例1:
3.1+4.8輸出樣例1:
7.90輸入樣例2:
98/0輸出樣例2:
Divisor can not be 0!輸入樣例1:
123%3輸出樣例1:
Unknown operator!
示例代碼:
#include<stdio.h>
int main()
{
double a, b;
char c;
scanf("%lf%c%lf", &a, &c, &b);
switch(c)
{
case '+':
printf("%.2lf", a + b);
break;
case '-':
printf("%.2lf", a - b);
break;
case '*':
printf("%.2lf",a * 1.0 * b);
break;
case '/':
if ( b < 0.0000001 )//浮點數精度問題
{
printf("Divisor can not be 0!");
break;
}
printf("%.2lf", a * 1.0 / b);
break;
default:
printf("Unknown operator!");
break;
}
return 0;
}
嗯,就是這樣子。
但我還是不滿意。這個計算器只能進行一次運算,如果我想進行多次運算,卻不想連續編譯運行程序該怎么辦?
這之后就交給我的小組成員們解決吧!
@瘋子眼里小丑最美
@echoesyy
@菻
@Stackoverflow#
有什么錯誤歡迎大家指出來,記得催更。
