C++题目紧急啊 要求最简单的算法

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

例:
输入:1234 2345 2356 3456 7895 2546 7345 6234
输出:7895 2546 3456 2356 2345 7345 1234 6234

#include <iostream>
using namespace std;

int main()
{
int i;
int num[8];
int temp;
cout<<"input 8 numbers:"<<endl;
for(i=0;i<8;i++)
{
cin>>num[i];
}
for(i=0;i<8;++i)
{
for(int j=0;j<7-i;++j)
{
if((num[j]%1000)<(num[j+1]%1000)||((num[j]%1000)==(num[j+1]%1000)&&num[j]>num[j+1]))
{
temp=num[j];
num[j]=num[j+1];
num[j+1]=temp;
}
}
}
cout<<"after sort:"<<endl;
for(i=0;i<8;i++)
{
cout<<num[i]<<" ";
}
}

你要简单的。。。我结构体和稍微复杂点的算术运算都没有敢用了。
我这里a[i]和b[i]是对应的,所以a[i]调换了b[i]也要调换。
用的是选择排序。。。怕你看不懂插入排序什么的。。。

#include<iostream.h>
#define N 8
main()
{
int a[N],b[N],i,j,t;
for(i=0;i<N;i++)
{
cout<<"请输入第"<<i+1<<"个