華為2016上機考試第二題

2021-07-23 22:48:41 字數 1742 閱讀 9695

開發乙個簡單錯誤記錄功能小模組,能夠記錄出錯的**所在的檔名稱和行號。

處理:

1.記錄最多8條錯誤記錄,對相同的錯誤記錄(即檔名稱和行號完全匹配)只記錄一條,錯誤計數增加;(檔案所在的目錄不同,檔名和行號相同也要合併)

2.超過16個字元的檔名稱,只記錄檔案的最後有效16個字元;(如果檔名不同,而只是檔名的後16個字元和行號相同,也不要合併)

3.輸入的檔案可能帶路徑,記錄檔名稱不能帶路徑

輸入描述:

一行或多行字串。每行包括帶路徑檔名稱,行號,以空格隔開。

檔案路徑為windows格式

如:e:\v1r2\product\fpgadrive.c 1325

輸出描述:

將所有的記錄統計並將結果輸出,格式:檔名**行數數目,乙個空格隔開,如: fpgadrive.c 1325 1

結果根據數目從多到少排序,數目相同的情況下,按照輸入第一次出現順序排序。

如果超過8條記錄,則只輸出前8條記錄.

如果檔名的長度超過16個字元,則只輸出後16個字元

輸入例子:

e:\v1r2\product\fpgadrive.c 1325

輸出例子:

fpgadrive.c 1325 1

#include 

#include

#include

int main()

; unsigned

int hang = 0;

struct filer

;//獲取輸入字串的行數

while (gets(str[hang]) != null)

struct filer filerecord[hang];

int chong = 0;//重複個數

for (unsigned

int i = 0; i < hang; i++)

*p = '\0';//將空格換為'\0'

p++;//移動到數字部分

while (*p != '\0' && *p != ' ')

filerecord[i - chong].num = num;

//獲取檔名

int length = strlen(str[i]);

int pnum = 1;

p = str[i] + length - 1;//p移動到字串末尾

while (*p != '\\' && pnum < 16)

if (*p == '\\')

else

filerecord[i - chong].amount = 1;

//判斷是否有重複的

for (unsigned

int j = 0; j < i - chong; j++)}}

//排序部分(指標排序)

hang -= chong;

struct filer *pf[hang];

for (unsigned

int i = 0; i < hang; i++)

for (unsigned

int i = 0; i < hang - 1; i++)}}

//輸出部分

if (hang >8)

for (unsigned

int i = 0; i < hang; i++)

return

0;}

華為上機考試

有乙個陣列a n 順序存放0 n 1,要求每隔兩個數刪掉乙個數,到末尾時迴圈至開頭繼續進行,求最後乙個被刪掉的數的原始下標位置。以8個數 n 7 為例 0,1,2,3,4,5,6,7 0 1 2 刪除 3 4 5 刪除 6 7 0 刪除 如此迴圈直到最後乙個數被刪除。輸入描述 每組資料為一行乙個整數...

華為上機第二題

輸入 n a b n表示有多少個城市,a表示要出發的城市,b表示要到達的城市 接著輸入n n的矩陣,表示任意兩個城市是否連通,連通用1表示,否則用0表示 如 3 0 2 1 1 1 1 1 1 1 1 1 輸出 從a到b共有多少條路。include include using namespace s...

華為2012校園招聘 上機考試2

1.陣列比較 20分 比較兩個陣列,要求從陣列最後乙個元素開始逐個元素向前比較,如果2個陣列長度不等,則只比較較短長度陣列個數元素。請程式設計實現上述比較,並返回比較中發現的不相等元素的個數 比如 陣列和陣列按題述要求比較,不相等元素個數為0 陣列和陣列按題述要求比較,不相等元素個數為3 要求實現函...