編寫函式實現累加功能,要求在陣列a[100]中按輸入的範圍表示式求和。
支援如下兩種字元:
":"為範圍表示符,「n:m」表示從n到m,「:m」表示從0到m,「m:」表示從m到末尾
「,」為分隔符
a[100] = ;
比如輸入:「3:7,9,45,2,77:78」
輸出:236(即3+4+5+6+7+9+45+2+77+78)
輸入:「:3,50,97:」
輸出:350(即1+2+3+50+97+98+99)
實現函式int sum(char *str):
#include
#include
#define n 100
/* *思路:1、解決各種表示式,如:n,m:n,...如何將這些數字獲取出來,於是就有各種函式
預設str指向當前分析表示式的第乙個字元,如colonbefore中,*str = ':';colonafter
中*str = m;依次類推
2、相同的判斷功能寫為單獨的函式,例如judgecommaposition、judgecolonposition等
3、注意邊界條件,例如以m:或者:m結尾時,判斷條件應該加上*(str + i) == '\0',否則
將會出現死迴圈
4、關於str++,因為測試用例中字串是置於常量區,給函式傳char *參時只是新的指標變數
指向那塊區域,即在c++中所謂的「淺拷貝」,為了解決這個問題,可以將傳參改為**或者使用全域性
變數記錄每次str該移動的次數,如下面**中的mnflag、mn就是這個功能,只不過mnflag適用於
大部分情況,對於mn,則是m:n這種特殊情況使用的
初級功能筆試題 2
同一,不喜勿噴 1 軟體測試方法有哪些分類?各有什麼特點?設計測試用例的主要方法有哪些?2 軟體測試的流程?3 如果上線版本發現了bug,你會怎麼做?4 根據自己的理解回答什麼是軟體測試,軟體測試分為哪幾個階段?5 什麼是冒煙測試?6 乙個蛋糕平均分成8等份 並分別給8個人 請問還剩下一塊蛋糕 是怎...
初級功能筆試題 2
同一,不喜勿噴 1 軟體測試方法有哪些分類?各有什麼特點?設計測試用例的主要方法有哪些?2 軟體測試的流程?3 如果上線版本發現了bug,你會怎麼做?4 根據自己的理解回答什麼是軟體測試,軟體測試分為哪幾個階段 5 什麼是冒煙測試?6 乙個蛋糕平均分成8等份 並分別給8個人 請問還剩下一塊蛋糕 是怎...
筆試 c 筆試題
1 在派生類中通過 base 呼叫基類成員 解析 2 方法重寫使用關鍵字 override 解析 使用virtual和override關鍵字實現方法重寫 3 關於抽象類下面說法錯誤的是 選一項 a 抽象類可以包含非抽象方法 b 含有抽象方法的類一定是抽象類 c 抽象類不能被例項化 d 抽象類可以是密...