文章

49

粉丝

90

获赞

9

访问

27.7k

头像
C++,我自己一步步通过遇到的错误,附加带注释的完整代码
P1023 贵州大学机试题
发布于2024年3月17日 12:20
阅读数 536

1.N诺要求pow()的第2个参数必须是unsigned long long

for (unsigned long long i = 0; i < s.size(); i++)
{
    n += pow(10, s.size() - i - 1) * (s[i] - '0');
}

2.N诺使用reverse()必须包含头文件<algorithm>

#include<algorithm>
reverse(s.begin(), s.end());

3.没考虑到不足两位的要补冗余的0

while (s.size() < 2)
{
	s.insert(s.begin(), '0');
}

4.输出的16进制要用大写,一开始我写的小写的'a'

s += (n % 16 - 10 + 'A');

5.没考虑到要统计'.'的个数,点不能多不能少,只能是3个

int dian = 3;
else if (*i == '.')
{
	dian--;
	if (dian < 0)
	{
		flag = 0;
		cout << "Error" << endl;
		break;
	}
	else
	{
		r += ten_to_16(t);
		t = "";
	}
}



以下是完整代码

#include<algorithm>
#include<cmath>
#include<iostream>
#include<string>
using namespace std;

/*传入一个十进制字符串,转换成int,并判断是否在0 - 255范围内*/
bool is_true(string s)
{
	int n = 0;
	for (unsigned long long i = 0; i < s.size(); i++)
	{
		n += pow(10, s.size() - i - 1) * (s[i] - '0');
	}
	if...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发