選擇與循環的做業題講解
1.代碼分析
statick修飾的局部變量,變量的生命週期變長
case語句沒遇到break前會一直向下執行,直到switch結束
也會執行default
錯誤示例:
正確狀況:
switch(c)中的c只能是整形表達式
由於對應的case 1:中的1只可能有整形常量表達式與之對應
若是c輸入的是其餘類型的話將找不到case1的狀況
char儲存的是字符的ASCII碼值,並且ASCII碼值都是整形,因此char也算是儲存整形常量
因此打印hellothird
a=8時,break了因此a不是7,a是8
ide
2.敲代碼題
函數
注意scanf(),輸入時scanf("%d,%d,%d",&a,&b,&c)要按1,2,3輸入(原樣輸入)可是若是中間輸入是空格則會默認與前一個字符分隔
建議:中間什麼都不加直接%d%d%d輸入時直接輸入加空格或回車就行
展轉相除法求最大公約數
思路
代碼的優化
i/2必定大於開平方i
若是開平方i以前不能找到一個因子能整除i,
那麼開平方i以後就找不到一個因子能整除i了
sqrt()是一個開平方的數學庫函數
須要引頭文件#include<math.h>
代碼有缺陷
%-2d爲左對齊,空格補齊
%2d爲右對齊,空格補齊優化