这是我的代码,任何想法?
std::string results[3][3] = {
{"Draw", "Win", "Lose"} , /* initializers for row indexed by 0 */
{"Lose", "Draw", "Win"} , /* initializers for row indexed by 1 */
{"Win", "Lose", "Draw"} /* initializers for row indexed by 2 */
};
cout << "It's a " << results[choice,compChoice];
choice和compChoice是整数
答案 0 :(得分:1)
使用results[choice][compChoice]
访问数组。
那是因为二维数组实际上是数组的数组。
首先,您需要进入results[choice]
,然后从中选择[compChoice]
。
答案 1 :(得分:1)
choice,compChoice
只评估为compChoice
,因此您只需将指针输出到choice
中results
数组的开头。请改用results[choice][compChoice]
。
答案 2 :(得分:1)
结果是一个数组数组。尝试通过
访问results[choice][compChoice]
结果[选择]&#34;返回&#34;您可以使用另一个[]运算符访问的数组。据我所知,在一对括号中不支持多个索引。
答案 3 :(得分:1)
例如C ++语法和多维数组的C#语法之间存在差异。您在此声明中撰写的与访问数组元素相关的内容
cout << "It's a " << results[choice,compChoice];
在C#中有效并且是你的意思。
在C ++中这句话
cout << "It's a " << results[choice,compChoice];
也有效,但其含义不同。在下标运算符results[choice,compChoice]
中使用了所谓的逗号运算符,实际上它等同于results[compChoice]
,除了不会计算第一个子表达式。所以results[compChoice]
给出了一行二维数组,operator<<
输出了它的地址。
您想要的是以下
cout << "It's a " << results[choice][compChoice];
答案 4 :(得分:0)
谢谢大家。很高兴这是一个语法问题我不是完全忽略了这一点!