题目描述:
输入整型数组和排序标识,对其元素按照升序或降序进行排序
接口说明
原型:
void sortIntegerArray(Integer[] pIntegerArray, int iSortFlag);
输入参数:
Integer[] pIntegerArray:整型数组
int iSortFlag:排序标识:0表示按升序,1表示按降序
输出参数:
无
返回值:
void
输入描述:
1、输入需要输入的整型数个数
输出描述:
输出排好序的数字
输入例子:
8 1 2 4 9 3 55 64 25 0
输出例子:
1 2 3 4 9 25 55 64
#include <iostream>
using namespace std;
void descending(int *p,int n){
//降序
int i, j;
for (i = 0; i < n; i++){
int k = i;
for (j = i + 1; j < n; j++){
if (p[i] < p[j]){
k = j;
}
}
if (k != i){
int temp = p[i];
p[i] = p[k];
p[k] = temp;
}
}
}
void ascending(int *p,int n){
//升序
int i, j;
for (i = 0; i < n; i++){
int k = i;
for (j = i + 1; j < n; j++){
if (p[i] > p[j]){
k = j;
}
}
if (k != i){
int temp = p[i];
p[i] = p[k];
p[k] = temp;
}
}
}
void sortIntegerArray(int a[], int n, int sortFlag){
int len = n;
int *p = a;
if (sortFlag == 0){
ascending(p, len);
}
else{
descending(p, len);
}
}
int main(){
int i,n;
int arr[100];
int sortFlag;
while (cin >> n){
for (i = 0; i < n; i++){
cin >> arr[i];
}
int sortFlag;
cin >> sortFlag;
sortIntegerArray(arr, n, sortFlag);
for (i = 0; i < n; i++)
cout << arr[i] << " ";
}
return 0;
}
提交出现这种情况 但是在VS2013中能够通过。。。暂时放这吧
这是提交通过的代码。
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
bool compDown(int a,int b){
return a > b;
}
bool compUp(int a, int b){
return a < b;
}
int main(){
int i,n;
while (cin >> n){
vector<int> vec;
int temp;
int sortFlag;
for (i = 0; i < n; i++){
cin >> temp;
vec.push_back(temp);
}
cin >> sortFlag;
if(sortFlag == 0){
sort(vec.begin(),vec.end(),compUp);
}
else{
sort(vec.begin(),vec.end(),compDown);
}
for(i = 0;i < vec.size() - 1;i++){
cout << vec[i] << " ";
}
cout << vec[vec.size()-1] << endl;
}
return 0;
}