这提交为什么一直wrong answer啊?
#include
#include
int main()
{
int a, n, r, b[1000], k;
scanf_s("%d", &a);
while(a--)
{
k = 0;
scanf_s("%d %d", &n, &r);
if (n < 0)
{
printf("-");
n = abs(n);
}
while (n)
{
b[k] = n % r;
n = n / r;
k++;
}
for (int j = k-1; j >= 0; j--)
{
if (b[j] == 10)
{
printf("A");
}
else if (b[j] == 11)
{
printf("B");
}
else if (b[j] == 12)
{
printf("C");
}
else if (b[j] == 13)
{
printf("D");
}
else if (b[j] == 14)
{
printf("E");
}
else if (b[j] == 15)
{
printf("F");
}
else
{
printf("%d", b[j]);
}
}
printf("\n");
}
}
已解决 忘记考虑n==0的情况了
是不是最后一行最后不需要换行?
if (b[j] == 10)
...
这里写得有点呆,这么多判断只要2行就可以了。
if (b[j] >= 10)
printf("%c" b[j] - 10 + 'A');
好好看报错信息,大概率是scanf_s报错了
这个只在vs里必须这样写
其他库里要么没这个函数,要么需要改个头文件
参考GPT和自己的思路:
这段代码的逻辑基本正确,但可能出现 wrong answer 的原因有以下几个可能:
输入格式错误:输入方式应该是每行两个整数,用空格隔开。如果输入格式不符合要求,程序会出错。
输出格式错误:输出结果应该是每行一个进制转换后的数字,如果与题目要求的输出格式不一致,程序会出错。
原本准确的输出结果被误判为错误的结果:根据题目的要求,每行输出一个进制转换后的数字,如果有多余的空格或换行,会被判定为错误。
程序中的 bug:程序中可能存在一些逻辑错误,导致计算结果与预期不符合。
建议你可以认真检查输入输出格式是否符合要求,以及对每个测试用例进行单独的检查,同时注意程序中可能存在的逻辑错误。