#2#3RE
查看原帖
#2#3RE
814782
Rece_Moon楼主2022/10/16 01:05
#include<stdio.h>
void paixu(int a[], int b[], int n, int c)
{
	for (int m = 0; m < c; m = m + n * 2)
	{
		int i = 0, j = 0, s = n;
		if (c - m <= n)
		{
			for (int k = m; k < c; k++)
			{
				b[k] = a[k];
			}
			break;
		}
		if (c - m - 1 < 2 * n)
		{
			s = c - m - n;
		}
		while (i < n || j <=s)
		{
			if (j == s)
			{
				for (; i < n; i++)
					b[m + i + j] = a[m + i];
				break;
			}
			if (i == n)
			{
				for (; j < n; j++)
					b[m + i + j] = a[m + j + n];
				break;
			}
			if (a[m + i] < a[m + j + n])
			{
				b[m + i + j] = a[m + i];
				i++;
			}
			else
			{
				b[m + i + j] = a[m + j + n];
				j++;
			}
		}
	}
	for (int i = 0; i < c; i++)
	{
		a[i] = b[i];
	}
	if (n * 2 < c)
	{
		paixu(a, b, 2 * n, c);
	}
}
int main()
{
	int a[100009] = { 0 }, b[100009] = { 0 }, c;
	scanf("%d", &c);
	for (int i = 0; i < c; i++)
	{
		scanf("%d", &a[i]);
	}
	paixu(a, b, 1, c);
    for (int i = 0; i < c; i++)
	{
		printf("%d ", a[i]);
	}
	return 0;
}

#2的数据会出来这种报错,希望有大佬可以指点一下出错原因 0x768A2135 (KernelBase.dll)处(位于 测试.exe 中)引发的异常: 0x40010005: Control

2022/10/16 01:05
加载中...