這是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...