1. 程式人生 > >c語言程式碼比較18bb/1

c語言程式碼比較18bb/1

kata1:
在這裡插入圖片描述
我的程式碼:
在這裡插入圖片描述

別人的程式碼1:
在這裡插入圖片描述

用數學公式實現 第n個數是1+2+3+4…+n = (1+n)n/2;
進而結果是對求和的求和
對(1+n)n/2遍歷1 to n;
進而sum = 1/2 * (1
2 + 2
3 +34+…+nn+1)
即 sum = 1/2 ( 1(1+1) + 2 (2+1)+…+n(n+1));
sum = 1/2 * (1+22 + 32 +…n2 + 1+2 +3…+n)

別人的程式碼2:
在這裡插入圖片描述

用遞迴代替迴圈來 求和

神仙的程式碼:
在這裡插入圖片描述

這與程式碼1思路沒有差別,都是用formula
但是提供了一種新的n+1表示方式
即-~n == n+1
但是為什麼呢。。。

kata2:
尋找一個字串中大於m的字母的個數

在這裡插入圖片描述

我的程式碼:

不過這個程式碼是有問題的
在這裡插入圖片描述
但是當我更改這行後就可以了:
在這裡插入圖片描述
觀察函式頭可知,這是一個指標函式,即返回一個字元型的指標。
但是疑問我定義了字元陣列不能算作字元指標嗎。

別人的程式碼:

在這裡插入圖片描述

運用了aspintf 函式,可以根據傳入的字串自動分配記憶體,所以只需要char *r就行。
該函式在asprintf .h庫中