为啥只有部分测试能过呢?这代码有什么逻辑上的漏洞吗?

图片说明图片说明

/*16.  从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。

  注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。*/

#include <iostream>

using namespace std;

int main()

{

int n;

cin >> hex >> n;

cout << dec << n;

return 0;

}

回答

看看题目怎么说,是不是不是输入一行输出一行,而是全部输入后再全部输出。

你可以把输入存入数组,统一输出

#include <iostream>

using namespace std;

int main()

{

int n;

int * arr = new int[n];

for (int i = 0; i < n; i++)

cin >> hex >> arr[i];

for (int i = 0; i < n; i++)

cout << dec << arr[i];

return 0;

}

以上是 为啥只有部分测试能过呢?这代码有什么逻辑上的漏洞吗? 的全部内容, 来源链接: utcz.com/a/42170.html

回到顶部