21.數字統計
簡要描述:對輸入的整型陣列,輸出陣列元素中的最大值、最大值的個數、最小值和最小值的個數
詳細描述:
介面說明
原型:voidoutputmaxandmin(int * pinputinteger,intinputnum,int * pmaxvalue,int * pmaxnum,int * pminvalue,int * pminnum);
輸入引數:
int * pinputinteger:整型陣列指標
int inputnum:陣列元素個數
輸出引數(指標指向的記憶體區域保證有效):
int* pmaxvalue:陣列中最大值
int* pmaxnum:陣列中最大值的個數
int* pminvalue:陣列中最小值
int* pminnum:陣列中最小值的個數
返回值:
void
答案點這裡
22.水仙花數
簡要描述:水仙花數又稱阿姆斯特朗數。
水仙花數是指乙個n 位數( n≥3 ),它的每個位上的數字的n 次冪之和等於它本身。(例如:1^3 + 5^3 + 3^3 = 153)
求輸入的數字是否為水仙花數
答案點這裡
23.兔子產子
簡要描述:從前有一對長壽的兔子,他們每個月生出一對小兔子,第乙個月新生產的兔子兩個月就長大了,在第三個月初開始生他們的下一代小兔子,這樣一代一代的生下去,不考慮兔子的壽命,求第n個月出生多少對小兔子
簡單示例:
比如輸入1,第乙個月出生的兔子只有一對,所以輸出為1
比如輸入2,第二個月出生的兔子只有一對,所以輸出為1
比如輸出為3,則該月份有兩對兔子出生,則輸出為2
要求:實現以下介面:
輸入乙個正整數,表示第幾個月,輸出該月份生產出的小兔子的對數
呼叫者會保證:
輸入的月份與生產的兔子數目都為unsigned int 能表達的數字
答案點這裡
24.向公升序單向鍊錶中插入乙個節點
簡要描述:輸入乙個公升序單向鍊錶和乙個鍊錶節點,向單向鍊錶中按公升序插入這個節點。
輸入為空指標的情況視為異常,另外不考慮節點值相等的情況。
鍊錶結點定義如下:
struct listnode ;
詳細描述:
介面說明
原型:listnode* insertnodetolist(listnode* plisthead, listnode* pinsertnode);
輸入引數:
listnode* plisthead 單向鍊錶
listnode* pinsertnode 新插入節點
輸出引數(指標指向的記憶體區域保證有效):
listnode* plisthead 單向鍊錶
返回值:
正常插入節點返回煉表頭指標,其它異常返回空指標
答案點這裡
25.修改字串
簡要描述:將給定字串中連續出現3次的小寫字母替換為改小寫字母在字母表中的下乙個字母(z變為a),大寫字母和其他字元不處理,仍然保留。要求最終輸出的字串中不再存在任何連續出現3次的小寫字母。
例如字串」atrcccert893#45ae」經過處理後應該為」atrdert893#45ae」
詳細描述:
介面說明
原型:int changestring(char *pinstr,char *poutstr)
輸入引數:
char *pinstr 輸入字串
輸出引數:
char *poutstr 輸出字串,記憶體空間已分配好,可直接使用
返回值:
int 0:處理成功 -1:出現異常
限制: 無
舉例:pinstr:jkds*^*(hkeeeklidddjilfff
poutstr:jkds*^*(hkeeekliejilg
答案點這裡
26.找出字串中第乙個出現次數最多的字元
簡要描述:找出字串中第乙個出現次數最多的字元
詳細描述:
介面說明
原型:bool findchar(char* pinputstring, char* pchar);
輸入引數:
char* pinputstring:字串
輸出引數(指標指向的記憶體區域保證有效):
char* pchar:出現次數最多的字元
返回值:
false 異常失敗
true 輸出成功
答案點這裡
27.在字串中找出連續最長的數字串
簡要描述:請乙個在字串中找出連續最長的數字串,並把這個串的長度返回;如果存在長度相同的連續數字串,返回最後乙個連續數字串;
注意:數字串只需要是數字組成的就可以,並不要求順序,比如數字串「1234」的長度就小於數字串「1359055」,如果沒有數字,則返回空字串(「」)而不是null!
樣例輸入
abcd12345ed125ss123058789
abcd12345ss54761
樣例輸出
輸出123058789,函式返回值9
輸出54761,函式返回值5
介面說明
函式原型:
unsignedint continumax(char** poutputstr, char* intputstr)
輸入引數:
char* intputstr 輸入字串;
輸出引數:
char** poutputstr: 連續最長的數字串,如果連續最長的數字串的長度為0,應該返回空字串;如果輸入字串是空,也應該返回空字串;
返回值:
連續最長的數字串的長度
答案點這裡
28.迴圈佇列基本操作
簡要描述:
當時做的時候,題目給的是錯的,然後做的時候是根據工程中的測試用例猜測的題目意思,根據這個意思完成作答,**通過驗證。
答案點這裡
29.找出公升序陣列中和為給定值的兩個數字
簡要描述:輸入乙個已經按公升序排序過的陣列和乙個數字,在陣列中查詢兩個數,使得它們的和正好是輸入的那個數字。如果有多對數字的和等於輸入的數字,輸出任意一對即可。
詳細描述:
介面說明
原型:bool findtwonumberswithsum(int adata, unsignedint uilength, int sum, int *pnum1, int *pnum2);
輸入引數:
int adata // 公升序陣列
unsigned int uilength // 陣列元素個數
int sum, // 給定兩個陣列的和
輸出引數(指標指向的記憶體區域保證有效):
int*pnum1 // 第乙個數字,對應陣列索引小的
int *pnum2 // 第二個數字,對應陣列索引大的
返回值:
找到返回true,異常返回false
答案點這裡
30.整型反序
簡要描述:給出乙個不多於5位的整數, 進行反序處理
要求:1、求出它是幾位數
2、分別輸出每一位數字
3、按逆序輸出各位數字,例如原數為321,應輸出123(僅數字間以空格間隔, 負號與數字之間不需要間隔)
例如:輸入:12345
輸出:5
1 2 3 4 5
54321
注意:如果是負數,負號加在第乙個數字之前, 與數字沒有空格間隔
比如輸入:-12345
輸出:5
-1 2 3 4 5
-54321
函式原型:
/*輸入:
iinput: 位數不大於5的整數
輸出:inum: 整數字數
strrst: 空格間隔輸出結果
ioutput:逆序整數
返回:0 成功
-1 輸入無效
*/int processx(int iinput, int& inum, char * strrst, int& ioutput)
答案點這裡
華為OJ之初級篇
11.獎金提成 簡要描述 企業發放的獎金根據利潤提成。利潤低於或等於100000元的,獎金可提10 利潤高於100000元,低於200000元 100000 200000 時 低於100000元的部分按10 提成 高於100000元的部分,可提成7.5 200000 400000時,低於200000...
華為OJ之初級篇
本文章旨在提供乙個互相學習和交流的平台,也作為oj刷題這段時光的記錄。本人非計算機科班出身,程式主要以實現功能性需求為主,暫不考慮效能 質量等因素。以下oj題目順序為成功通過機器驗證的順序,本篇題目全出自初級題系列。為了保證本文介面的簡潔性,以 片形式給出,見相關 答案點這裡 鏈結。1.在字串中找出...
華為OJ題目 初級篇(機試OJ平台)
華為oj初級篇是本人蒐集的一些題目,都run過ok,初級題我個人感覺必要在15 20min以內完成,不然時間不夠用,一共三道,後兩道中高階題目。題目一 作業系統任務排程問題。作業系統任務分為系統任務和使用者任務兩種。其中,系統任務的優先順序 50,使用者任務的優先順序 50且 255。優先順序大於2...