回答过的问题的其他成员,谢谢 的问题显然是从没有宣布VF足够大来也含有9 - >应VF [10 ]与结构的一些成员的工作影响到结构C++
长话短说,在输入文件中我有一个9×9元素的2d数组。它包含{0,1 ... 9}中的元素。我需要计算出每个数字出现在每一行上的次数(为此,我使用了vf []数组),以及有多少不同于0(因为我使用了'号码')。我包括VF []和数成一个结构,如下:
struct Line
{
short vf[9];
short number;
}L[10];
读取2D阵列后,我使用分析()以确定每个线有多少数字0是不同的以及每个数字在该行上出现的次数。
void Analyze()
{
for (short i = 1 ; i <= 9 ; ++i) // lines
for (short j = 1 ; j <= 9 ; ++j) //columns
if (M[i][j]) //different from 0
{
L[i].number++;
L[i].vf[ M[i][j] ]++;
}
}
现在,这里出现了一个我无法解释的问题。这是输入的样子:
2 5 8 7 3 0 9 4 1 // number should be 8
6 0 9 8 2 4 3 0 7 // number should be 7
4 0 7 0 1 5 2 6 0 // number should be 6
3 9 5 2 7 0 4 0 6 // number should be 7
0 6 2 4 0 8 1 0 5 // number should be 6
8 4 0 6 5 0 7 2 9 // number should be 7
1 8 4 3 6 9 5 7 2 // number should be 9
0 7 0 1 4 2 0 9 3 // number should be 6
9 2 3 5 8 7 6 1 4 // number should be 9
不过,我每行得到的数字是:现在
9 8 6 8 6 8 10 7 10
,如果我删除L [我] .vf [M [I] [j]] ++;从线分析(),我得到不同的结果,这就是:
8 7 6 7 6 7 9 6 9
所以现在的问题是,没有任何人有,为什么增加VF预感[]似乎也对有效果号码?
如果我犯了任何英语错误,请转到我身上。
M是如何申报的?是M [10] [10]吗? M的内容如何?范围是0..8? – cup
我不认为这应该是一个问题,如果我也以这种方式读取数组。这就是我在学校教过的东西,这成了一种习惯。是的,它被宣布为短M [10] [10]。它只能包含{0 ... 9}中的元素。 –
没有vf [9]','vf'的索引范围从0到8. –