c++求助
查看原帖
c++求助
1122193
FarmerDrone楼主2024/1/12 18:31

在本地输入后马上就输出了“return value 3221225477”这种乱码,可能是炸了内存,但交到洛谷全是TLE

#include <bits/stdc++.h>
using namespace std;
int main()
{
	string str;
	char ch;
	cin >> str;
	str += '/';
	int str_wei = 0;
	int dengyu;
	while (str[str_wei] != '/')
		str_wei++;
	char kind[str_wei];
	char ki;
	for (int i = 0; i < str_wei; i++)
	{
		if (str[i] == '-')
			ki = 1;
		else if (str[i] == '+')
			ki = 2;
		else if (str[i] == '=')
		{
			ki = 3;
			dengyu = i;
		}	
		else if (str[i] >= '0' && str[i] <= '9')
			ki = 4;
		else
		{
			ch = str[i];
			ki = 5;
		}
		//cout << ki << endl;
		kind[i] = ki;
	}
	//for (long long i = 0; i < str_wei; i++)
	//	cout << kind[i];
	//cout << endl << str_wei << " " << ch << " " << dengyu << endl;
	short n, x;
	long long N, X;
	n = x = 0;
	unsigned char N_m = 0;
	unsigned char N_wei[200];
	char N_N[200][200];
	long long N_n = 0;
	long long X_n = 0;
	char zhfu_dengyu, zhfu_zhfu;
	for (int i = 0; i < str_wei; i++)
	{
		if (i < dengyu)
			zhfu_dengyu = 1;
		else
			zhfu_dengyu = -1;
		if (str[i] != '-')
			zhfu_dengyu = 1;
		else
			zhfu_dengyu = -1;	
		N_wei[N_m] = 0;
		while (kind[i] == 4)
		{
			N_N[N_m][N_wei[N_m]] = str[i] - '0';
			N_wei[N_m]++;
			i++;
		}
		N_wei[N_m]--;
		if (kind[i] == 5)
		{
			for (int wei = N_wei[N_m]; wei >= 0; wei--)
				X_n += zhfu_dengyu * zhfu_zhfu * N_N[N_m][N_wei[N_m] - wei] * pow(10, wei);
		}
		else
		{
			for (int wei = N_wei[N_m]; wei >= 0; wei--)
				N_n -= zhfu_dengyu * zhfu_zhfu * N_N[N_m][N_wei[N_m] - wei] * pow(10, wei);
		}
		i--;
		N_m++;
	}
	cout << fixed << setprecision(3) << ch << "=" << N_n / 1.0 / X_n << endl;
	return 0;
}
2024/1/12 18:31
加载中...