#include<iostream>
using namespace std;
int main(int argc, char** argv) {
int num, i, j;
while (cin >> num)
{
if (num == 0) break;
int* p = new int[num];
int* o = new int[num];
for (i = 0; i < num; i++)
cin >> p[i];
for (i = 0; i < num; i++) o[i] = 0;
for (i = 0; i < num; i++)
for (j = p[i]; j > 0; j /= 10)
o[i] += (j % 10) * (j % 10);
for (i = 0; i < num; i++)
for (j = num - 2; j >= 0; j--)
if (o[j] > o[j + 1]) { swap(o[j], o[j + 1]); swap(p[j], p[j + 1]); }
for (i = 0; i < num; i++)
cout << p[i] << ' ';
cout << endl;
delete[]p;
delete[]o;
}
return 0;
}
有大佬能帮忙看下这一题吗,为啥汉爵自己验证的时候感觉没问题,oj上提示91%错误#include<iostream>using namespace std;int main(int argc, char** argv) { int num, i, j; while (cin >> num) { if (num == 0) break; int* p = new int[num]; int* o = new