大整数必须存为字符型的数组才可以保存,不然越界。
bool comp2(const char *a1, const char *a2)
{
int n1 = strlen(a1),n2=strlen(a2);
int k = 0;
bool res = false;
if (n1 > n2)
res = true;
else if (n1 < n2)
res = false;
else
{
if (strcmp(a1, a2) > 0)
res = true;
}
return res;
}
void CharsSort()
{
char a[100][1000];
char tmp[1000];
int i, j, d;
int N;
cout << "请输入大正整数个数N:" << endl;
cin >> N;
cout << "请输入多个正整数:" << endl;
for (i = 0; i<N; i++)
cin >>a[i];
int t;
for (int i = 1; i < N; ++i)
{
memcpy(tmp, a[i],1000);
for (t = i; t>0 && comp2(tmp, a[t - 1]); --t)
memcpy(a[t], a[t - 1],1000);
memcpy(a[t], tmp,1000);
}
for (int i = 0; i < N; i++)
{
cout << a[i] << endl;
}
}