为什么全都RE了,floating point exception
查看原帖
为什么全都RE了,floating point exception
1103295
butterbutterfly楼主2023/12/21 22:09
#include <iostream>
#include <algorithm>
#include <cmath>
#include <iomanip>
#include <string.h>
using namespace std;

struct N
{
	int sss[11];
	int dig;
};
typedef struct N nnn;

void getline(nnn &a)
{
	int loop = 0;
	char c;
	a.dig = 0;
	while ((c = getchar()) != ' ' && c != '\n')
	{
		a.sss[loop++] = c - '0';
		a.dig++;
	}
}

bool cmp(nnn &a, nnn &b)
{
	int d1 = a.dig, d2 = b.dig;
	int dig = d1 > d2 ? d2 : d1;
	int max = d1 > d2 ? d1 : d2;
	int loop = 0;
	for (; loop < dig; loop++)
	{
		if (a.sss[loop] > b.sss[loop])
		{
			return true;
		}
		else if (a.sss[loop] < b.sss[loop])
		{
			return false;
		}
	}
	if (d1 > d2)
	{
		for (; loop < max; loop++)
		{
			if (a.sss[loop] > b.sss[loop % (dig)])
			{
				return true;
			}
			if (a.sss[loop] < b.sss[loop % (dig)])
			{
				return false;
			}
		}
		return false;
	}
	if (d1 < d2)
	{
		for (; loop < max; loop++)
		{
			if (b.sss[loop] > a.sss[loop % (dig)])
			{
				return false;
			}
			if (b.sss[loop] < a.sss[loop % (dig)])
			{
				return true;
			}
		}
		return false;
	}
	return false;
}

int main()
{
	int number;
	cin >> number;
	getchar();
	nnn arr[number];
	for (int loop = 0; loop < number; loop++)
	{
		getline(arr[loop]);
	}
	sort(&arr[0], &arr[number], cmp);
	for (int loop = 0; loop < number; loop++)
	{
		for (int l = 0; l < arr[loop].dig; l++)
		{
			cout << arr[loop].sss[l];
		}
	}

	return 0;
}


2023/12/21 22:09
加载中...