第二次部落格園作業
一.1.運算子的優先順序和結合性使用不熟練
如^、|、>>等,其中^不是次方,可以用pow(a,3)表示a的三次方 A*A!=A^2
A--和A++和--A和++A的差別不清楚
2.各種型別運算量混合運算時的自動轉換不熟練
int a,b,c;double d;
d=1.0*(a*b)/c;
在前面加入1.0*使後面的int資料型別變成double
- 輸入的方式只會單一種
cin>>a>>b;
cin.ignore(3);
cin>>c;
輸入:12 34 5678
事實:12 34 78
56(包括空格)3個被忽略了
char c1,c2,c3,c4;
cin.get(c1);
cin.get(c2);
cin.get(c3);
cin.get(c4);
輸入:A B<Enter>
實際:c1為A,c2為 ,c3為B,c4為回車
char a[80];
cin.getline(a,80);
輸入79個字串,包括空格
- 呼叫子函式時,即使實參列表中沒有引數,()都必須有
- &的使用在地址和引用的區別
引用時
void move(int &x,int &y)
{ int z;
z=x;x=y;y=z;}
int main()
{ int x=2,y=9;
move(x,y);
cout<<x<<y;
return 0;}
輸出:92
- 函式形參的預設值(預設值)
有預設值的形參的右邊不能出現沒指定預設值的形參,且不能指定引用引數的預設值,預設值會被實參覆蓋
int move(int a,int b=8,int c=9) ——合法
int move(int a=8,int b,int c=9) ——不合法
int move(int a,int b=8,int &c=9) ——不合法
- 行內函數性質不熟練
以增加空間換減少時間
函式中不能有迴圈語句、switch語句和複雜巢狀的if語句
- 函式過載不熟練
同名函式的引數個數不同,或引數型別不同,或是否為常成員函式
- 區域性變數的儲存類別的差別
auto 無初值,初值不確定 空間在使用完後會被回收
static 無初值,數字型為0,字元型為’\0’ 有自己的空間
register 用於節省時間
10.exit();使用方法不清
exit()括號中的0和別的數字的區別
11.不理解為什麼copy字串時,最後沒有賦予’\0’,會輸出亂碼。
二.1.打印出沙漏
輸入:*個數n
輸出:打出的沙漏 最後一行為多餘的*的個數
- 用if語句區別,滿足打出*,反之打出
- 輸入n,k-->通過for語句得出打印出來的行數-->通過for語句和if語句打印出漏斗-->得出多餘的*的數量
- for語句和if語句的並用
- 其實主要可能更接近數學問題,通過if語句裡面的條件,主要通過座標法和舉例法來實現