一.思惟導圖app
二. 語法認識函數
1.if-else3d
if(條件){ 執行語句 } else{ 執行語句 } //else與最近的if配對
遇到的問題: 條件中判斷值是否相等如x==0編成x=0;執行語句最後一條忘加「 ;」。code
解決 :作pta中if-else題到下意識寫完便檢查的程度blog
2.switch數學
switch(表達式){ case 值1: //表達式的值和 值1匹配上了,執行代碼; break; case 值2: //表達式的值和 值2匹配上了,執行代碼; break; case 值3: //表達式的值和 值3匹配上了,執行代碼; break; default: //若表達式的值和以上的case後面的值都沒有匹配上,就執行這裏的代碼。 break; }
3.forit
for (表達式1;表達式2;表達式3){ //表達式1對循環變量賦值,表達式2爲循環條件,表達式3爲改變循環變量的值。 //表達式能夠不寫,for(;表達式2;)=while(表達式2) }
遇到的問題: 一開始會在表達式3後加「;」io
解決:用for時多留心,作些題來熟練for循環
4.while思維導圖
while(表達式){ 循環體語句 }
5.do-while
do{ 循環體語句 } while(表達式)//會先作一次循環再判斷
6.break以及continue
for (表達式1;表達式2;表達式3){ if(表達式){ break; } } for (表達式1;表達式2;表達式3){ if(表達式){ continue; } }
break直接跳出循環,再也不循環體中其餘語句。continue跳事後面語句進行下一輪循環
遇到的問題:作題時有時想不到用它
解決:將書上列子對比,找出使用的條件
2.三、2.4做業:
第三章做業:
4.1做業:
思路:題目關鍵主要在於判斷輸入的數學符號爲什麼,根據所輸進行四則運算。
當時不知用if如何判斷字符,因此用switch分支。
#include <stdio.h> int main() { int value1,value2;//定義變量 char op; //定義字符 scanf("%d %c %d",&value1,&op,&value2); //輸入變量 switch(op){ //判斷字符 case '%':printf("%d\n",value1 % value2);break; //輸出結果 case '/':printf("%d\n",value1 / value2);break; case '+': printf("%d\n", value1 + value2); break; case '-': printf("%d\n", value1 - value2); break; case '*': printf("%d\n", value1 * value2); break; default: printf("ERROR\n"); break; } return 0; }
錯誤:覺得輸入字符跟輸入數字同樣用%d;沒在「 」裏的末尾加\n,答案錯誤。
收穫:懂得char的使用,熟練了switch-case
思路:求階乘和即算出一個階乘便相加。定義一個求階乘的函數,問題便成爲將它們加起來。
以後用for循環循環所要加次數。
#include <stdio.h> int fact (int x) { //定義求階乘的函數 int i,sum1=1; for (i=1;i<=x;i++){ sum1=i*sum1; } return sum1; //返回階乘值 } int main() { int number,sum2=0; scanf("%d",&number);//輸入循環的次數 int i; for (i=1;i<=number;i++) { sum2=sum2+fact(i); //將階乘相加 } printf("%d",sum2); //輸出結果 return 0; }
錯誤:對求階乘和無思路;函數忘記返回值,輸入循環次數時漏輸入&
收穫:懂得調用函數,熟悉函數使用
思路:首先要有一個列表讓人們選擇項目,因而用printf先輸出選項。輸入次數有限制,因而在輸入外套一個for循環,循環次數爲5.
而輸入次數大於5或輸入0時結束輸入,這即是輸入0時也跳出循環,因而用if判斷是否爲0,是便用break跳出。
#include <stdio.h> int main() { int x,i; double price;//定義價格 printf("[1] apple\n[2] pear\n[3] orange\n[4] grape\n[0] exit\n"); //輸出選項 for (i=1;i<=5;i++){ //最多輸入5次 scanf("%d",&x); //輸入編號 if (x==1){ printf("price = 3.00\n"); } else if(x==2){ price = 2.50; } else if(x==3){ price = 4.10; } else if(x==4){ price = 10.20; } else if(x==0){ //輸入0時跳出循環 break; } else price = 0.00; } printf("price = %.2f\n",price); //輸出價格 }
錯誤:忘記輸出精確到兩位小數;不知道輸入0時如何跳出循環
收穫:熟練了break的使用,知道如何連續輸入數