2015-10-10 69 views
0

這很可能是一個愚蠢的問題,但我不能讓元首或我教授的筆記尾巴,所以這裏有雲:使用C運行時庫函數只

我有一個分配給寫在C/C++的函數接受一個數組並將所有0的實例排序到數組的後面。但是,我只能使用C標準運行時庫,而不能使用STL或任何其他模板化容器。我不完全確定如何使用運行時庫(這是我的第一個高級編程類,而且以前我只用過C++)。

是否必須爲運行時庫包含或使用名稱空間?

是否包含<iostream>爲C++打破這些規則?

如何使用C++標準庫?我知道這不是STL,但我不確定它是否被視爲「模板集裝箱」。

+6

「C/C++」不是一種語言。你可能想知道你應該先使用哪一個。 – usr2564301

+3

*「我有一個任務可以在C/C++中編寫函數」* Facepalm。 *「我知道這不是STL」*雖然這是正確的,但我發現你的教授不太可能知道這一點。 –

+1

只需使用裸露的語言,不要#除了您自己的標題以外的任何內容。 – PSkocik

回答

1

如果包含c庫函數(xxxxx.h),那麼在它們導入根名稱空間時不包含任何名稱空間。

要執行實際的排序,根本不需要庫函數,儘管我可以考慮一個可以調整的函數(qsort)。要輸入和輸出,您至少需要fgets和fputs,需要C stdio(請參閱stdio.h)。儘管在這種情況下,如果您不必處理輸入錯別字,scanf和printf可能會更容易。如果你以前只做過C++,那麼這將成爲簡單IO工作的迴歸基礎。 C stdio很容易。這也很容易造成非常嚴重的錯誤。

3

這裏的教授往往會略顯草率。我幾乎可以確定,您可以使用標準庫進行控制檯I/O,例如iostreams或*printf

幾乎可以肯定的是,他只是希望你避免使用qsortstd::sort等功能來完成你的任務,因爲這樣會降低學習和實現算法的價值。

只要你在數組上手工實現你的分配排序,你應該沒問題。

當然,最安全的選擇是與你的教授仔細檢查,但我很確定這是他/她的意思。