我的程序中需要一个字符串数组。我这样宣布:
string edges[N][N] = {
{"0", "A", "0", "B", "E", "0", "0", "P1", "0"},
{"A", "0", "D", "I", "0", "0", "0", "0", "0"},
{"0", "D", "0", "0", "0", "H", "F", "0", "0"},
{"B", "I", "0", "0", "0", "H", "0", "0", "0"},
{"E", "0", "0", "0", "0", "0", "0", "P2", "0"},
{"0", "0", "H", "H", "0", "0", "0", "0", "P4"},
{"0", "0", "F", "0", "0", "0", "0", "0", "P3"},
{"0", "0", "0", "0", "0", "0", "0", "0", "0"},
{"0", "0", "0", "0", "0", "0", "0", "0", "0"},
};
没问题,当我尝试访问具有1个字母值(A或B等)的字符串时,但是如果我尝试访问具有2个字母值的字符串,例如edges[0, 7]
(值为“P1” ),programm将输出0.出了什么问题?
如果元素是A,B,C等单字母,它可以正常工作,但是在P1或P2时失败
完整的程序列表和工作程序在这里http://ideone.com/ZMiVPE
答案 0 :(得分:1)
他这里在位置[0,8]显示值0,所以,这是正确的。好吧,这是对的。 数组将安排如下:
string edges[N][N] = {
{[0,0], [0,1], [0,2], [0,3], [0,4], [0,5], [0,6], [0,7], [0,8]},
....
[8,0], [8,1], [8,2], [8,3], [8,4], [8,5], [8,6], [8,7], [8,8]}}
};
答案 1 :(得分:0)
因为你想要7而不是8. C语言我们是0索引。