主题:以位数之和为依照的排序问题
#pragma hdrstop
#include<iostream>
#include<algorithm>
#include<vector>
#include<conio>
using namespace std;
//---------------------------------------------------------------------------
int bitSum(int a);
bool lessThanBitSum(int a,int b){return bitSum(a)<bitSum(b); }
//---------------------------------------------------------------------------
#pragma argsused
int main(int argc, char* argv[])
{
int a[]={33,61,12,19,14,71,78,59};
vector<int> aa(a,a+8);
sort(aa.begin(),aa.end(),lessThanBitSum);
for(int i=0;i<aa.size();++i)
cout<<aa[i]<<" ";
getch();
cout<<"\n";
return 0;
}
//---------------------------------------------------------------------------
int bitSum(int a){
int sum=0;
for(int x=a;x;x/10) sum+=x%10;
return sum;
}
//-------------------------------------------------------------
此程序是实现一各位数字之和的大小来决定排序顺序的,编译没错,但没有输出结果,请高手帮忙指点!
(我觉得应该是sort(aa.begin(),aa.end(),lessThanBitSum);这地方的问题 但不知怎么改)
#include<iostream>
#include<algorithm>
#include<vector>
#include<conio>
using namespace std;
//---------------------------------------------------------------------------
int bitSum(int a);
bool lessThanBitSum(int a,int b){return bitSum(a)<bitSum(b); }
//---------------------------------------------------------------------------
#pragma argsused
int main(int argc, char* argv[])
{
int a[]={33,61,12,19,14,71,78,59};
vector<int> aa(a,a+8);
sort(aa.begin(),aa.end(),lessThanBitSum);
for(int i=0;i<aa.size();++i)
cout<<aa[i]<<" ";
getch();
cout<<"\n";
return 0;
}
//---------------------------------------------------------------------------
int bitSum(int a){
int sum=0;
for(int x=a;x;x/10) sum+=x%10;
return sum;
}
//-------------------------------------------------------------
此程序是实现一各位数字之和的大小来决定排序顺序的,编译没错,但没有输出结果,请高手帮忙指点!
(我觉得应该是sort(aa.begin(),aa.end(),lessThanBitSum);这地方的问题 但不知怎么改)