我遇到的问题是:
在调试中先用DevC++,发现输出有问题,然后去对比别人的代码没有发现区别,然后我换了Visual Studio发现输出结正确了,这让我感到很疑惑,可以帮吗解答一下吗?
代码问题描述:
我们有N个正整数,均小于10000。现在需要将这些正整数按照该正整数每一位数字相加的和从小到大排序,即该正整数的每一位数字相加的和越小排位越靠前。如果各位相加和相等,则按照正整数的值从小到大排序。
代码如下
#include <iostream>
#include <algorithm>
using namespace std;
int arr[105];
bool cmp(int a,int b)
{
int a1,b1=0;
int c=a;
int d=b;
while(a)
{
a1+=a%10;
a=a/10;
}
while(b)
{
b1+=b%10;
b=b/10;
}
if(a1==b1)
{
return c<d;
}
else
return a1<b1;
}
int main()
{
int n;
cin >> n;
for(int i=0;i<n;i++)
{
cin >> arr[i];
}
sort(arr,arr+n,cmp);
for(int i=0;i<n;i++)
{
cout<< arr[i]<<" ";
}
return 0;
}