代码有点乱,因为比较短就不加注释了— —、
#include<iostream>
#include<string>
using namespace std;
int cmp(const void *a,const void *b){
return (*(double*)a-*(double*)b>0)?1:-1;
}
int main(){
string input_str = "";
cout << "请输入待排序的double型数列:" << endl;
getline(cin,input_str);
char input_char[200];
for(int i = 0; i < input_str.length(); i++)
input_char[i] = input_str[i];
input_char[input_str.length()] = '\0';
try{
int count = 0;
double dnumber[100];
const char* num = strtok(input_char," ");
while(num){
dnumber[count++] = atof(num);
num = strtok(NULL," ");
}
qsort(dnumber,count,sizeof(double),cmp);
cout << "排序后结果为:" << endl;
for(int i = 0; i < count; i++)
cout << dnumber[i] << " ";
cout << endl;
}catch(exception e){
cout << "ERROR!" <<endl;
exit(-1);
}
}
运行结果: