c++要求最简单的算法 刚学C++别用太难的 好的还能再加分

来源:百度知道 编辑:UC知道 时间:2024/07/02 17:08:41
用户输入8个四位数,请按每个数的后三位进行降序排列。若后三位相同的数,则按数的原始大小进行升序排列。对新数列进行输出。

例:
输入:1234 2345 2356 3456 7895 2546 7345 6234
输出:7895 2546 3456 2356 2345 7345 1234 6234
太长了 我们刚学C++就没有简单点的吗?用基础点的东西写的

#define N 8
void main(){
int n,t,flag,j;
int a[N];
int i=0;
while(i<N){ //输入数据
cin>>n;
if(n<10000&&n>999) {
a[i]=n;
i++;
}
else {
cout<<"wrong number !"<<endl;
}
} //while结束

for(i=0;i<N;i++) cout<<a[i]<<" ";
cout<<endl;

for(i=0;i<N;i++){ // 选择排序
flag=i;
for(j=i;j<N;j++){
int aa=a[j]%1000; // 取后三位
int ff=a[flag]%1000;
if(aa>ff||((aa==ff)&&(a[j]<a[flag]))){ //比较
flag=j;
}
}
if(flag!=i) { //交换
t=a[i];
a[i]=a[flag];
a[flag]=t;
}
}
for(i=0;i<N;i++) cout<<a[i]<<" ";
cout<<endl;
}

#include<iostream>
#include<math.h>
using namespace std ;

void main()
{
int data[8] ;