2023年北理複試上機題之數字提取

2021-10-02 01:52:13 字數 1379 閱讀 1727

這是2023年北京理工複試上機題的第2題,網上看了很多答案都有問題,自己嘗試寫了乙個,很繁瑣,如果真是上機考試遇到這個題,我感覺自己無法正確的做出來。。。

題目描述:輸入字串,輸出字串中包含的數字,比如 2.3abc0-2.3  輸出 2.3 0 -2.3。

注意一些特殊的情況如+004.500值為+4.5。

#include #include int main()

; int len = strlen(str);

int j = 0;

bool myflag = false; //標示小數點

for (int i = 0; i= '0' && str[i+1] <= '9')

else

continue;

}else //不是第乙個位置,另起一行調至第乙個位置,繼續判斷

}//數字直接寫入

else if (str[i] >= '0' && str[i] <= '9')

//'.'不可能在第乙個位置

else if (str[i] == '.')

else

else

else}}

}//其他字元

else

else}}

//處理並輸出

for (int mm = 0; mm < 10000;mm++)

//判斷是不是小數

bool float_flag = false;

int dot_index;

for (dot_index = 0;dot_index'0' && strbuf[mm][start_index] <= '9')

break;

}if(start_index == length) //全是0

else

if(start_index2 == dot_index) //小數的整數部分為0

printf("0.");

else

}printf("%c",strbuf[mm][dot_index+1]); //輸出小數點後一位,處理2.0000情況

//處理結束的0

int end_index = 0;

for (end_index=length-1;end_index>dot_index+1;end_index--)

for (index = dot_index+2;index <= end_index;index++)

}printf(" ");}}

printf("\n");

return 0;

}

測試如下:

2023年北理複試上機題

1 輸入一串整數,輸入指令。要求 1 輸入a t,在這串整數後新增整數t。2 輸入c m n,用n替換m。3 輸入d t,刪除t。4 輸入s排序。include include include include include using namespace std print vectorvi co...

2023年北理複試上機題

這題遇到了很多問題,首先是sscanf 在使用這個時,無論是前面的字串還是後面用來接受的變數,注意都是字元陣列,不要用string,但可以接收後,直接賦值給string。char 型別給string 直接賦值,反之不可,用for i 0 i當結構體型別是 迭代器 it,訪問它內容的時候就不要 直接i...

2023年北理複試上機題

1 某人有 8 角的郵票 5 張,1 元的郵票 4 張,1元 8 角的郵票 6 張,用這些郵票中的一張或若干張可以得到多少種不同的郵資?題目要求是得到不同的郵資,也就是最後的總價值是不同的。這裡我們可以考慮完所有的情況,然後去掉重複的就可以了。include includeusing namespa...