題干如題 用這道題練習指標和自定義函式
這段代碼還有什么可以改進的地方?
我覺得可以在錄入用戶輸入的資料時加一個判斷輸入資料是否正確(比如輸入數字是否是十進制整數)
但不知道怎么實作
代碼如下:
#include<iostream>
#include<ctime>
using std::cin;
using std::cout;
using std::endl;
//宣告自定義函式
void initNumGroup(int* p_num);
int setNumGroup(int* p_num);
void bubbleSort(int* p_num, int times);
void soutNumGroup(int* p_num);
void getWorkTime(clock_t t);
//主函式
int main() {
clock_t t=0;
int numGroup[100];
int* p_num = numGroup;
initNumGroup(p_num);
int times = setNumGroup(p_num); //得到數字的個數
bubbleSort(p_num, times);
soutNumGroup(p_num);
getWorkTime(t);
return 0;
}
//初始化陣列
void initNumGroup(int *p_num) {
cout << "初始化陣列..." << endl;
for (int i = 0; i < 100; i++)
*(p_num + i) = -97627;
cout << "完成..." << endl;
}
//用戶為陣列賦值并回傳記錄個數i
int setNumGroup(int* p_num) {
int i = 0;
cout << "輸入-97627來停止輸入." << endl;
do {
cout << "請輸入數值:";
cin >> *(p_num + i);
} while (*(p_num + (i++)) != -97627);
return i-1;
}
//冒泡排序法
void bubbleSort(int* p_num,int times) {
int i, j, temp = 0;
for (j = 0; j < times - 1; j++) {
for (i = 0; i < times - j - 1; i++) {
if (*(p_num + i) > *(p_num + i + 1)) {
temp = *(p_num + i);
*(p_num + i) = *(p_num + i + 1);
*(p_num + i + 1) = temp;
}
}
}
}
//輸出排序結果
void soutNumGroup(int* p_num) {
int j = 0;
cout << endl;
while (*(p_num + j) != -97627) {
cout << *(p_num + (j++)) << "\t";
if (j % 8 == 0)
cout << endl;
}
}
//獲取程式運行時間
void getWorkTime(clock_t t) {
t = clock();
printf_s("\n\n已運行時間:%.3f秒", (double)t/CLOCKS_PER_SEC);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/277850.html
標籤:C++ 語言
下一篇:???實在不懂了
