gpt4 book ai didi

c++ - 我对这个问题有疑问我的输出不正确

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:39:29 26 4
gpt4 key购买 nike

编写一个程序来显示四种基本数据类型的大小,即整型、 double 型、浮点型、字符型。

输入:输入的第一行包含整数 T,表示测试用例的数量。对于每个测试用例,用户可以输入上述任何一种数据类型。

输出:对于每个测试用例,都有一行输出显示该数据类型的大小。

约束:1<=T<=100

例子:

输入:

4 
1
@
7.98
9.985647851

输出:

4
1
4
8

我试过了

int main() {
//code
int x;
cin>>x;
std::string s;
for(int i = 0;i<x;i++){
cin>>s;
cout << sizeof(s) << endl;
}
return 0;
}

输出是

32
32

错误答案

最佳答案

我开始着手解决这个问题,以便为 OP 提供一些见解,但我得出的结论是,许多其他人在 OP 原始问题的评论部分中都有:那就是这个问题或问题有一个不确定的解决方案!


推理:

如果用户将以下任何数字作为单个实体输入 { 0, 1, ... 9 }控制台这至少可以解释为 intchar 类型,最坏情况下甚至可能是 double,但没有 '.' 字符存在,我们可以将其排除在外。这个问题肯定有歧义。检查它是 float 还是 double 很容易;所要做的就是检查字符串以查看是否至少有一个 '.' 然后它是一个 double 或一个 float 然后检查字符串的最后一个字符是否为 f,如果是则为 float。检查它是否是非数字字符很容易,但是区分 charint 之间的单个字符数字是麻烦的部分!


解决方法:

您可以得出结论,如果输入字符串是单个字符且不是数字,那么它肯定是 char 类型。

您可以得出结论,如果输入字符串是单个字符并且是一个数字 ASCII[48 - 57],那么您可以得出结论,它是一个 int 类型。这将被视为一种约束。

你可以得出结论,如果它不是以上两个,它至少是一个 float 或一个 double 并且它是一个 float当且仅当字符串的最后一个字符是 f,但 . 必须存在才能成为两者之一。同样,这些将是您对接受的数据输入施加的限制。

关于c++ - 我对这个问题有疑问我的输出不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54454314/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com