我编写了一个代码,用于显示两个相同程度的顶点相等的图形。但是我不知道它为什么不能正常工作并给出错误的答案。例如:对于两个图形如:
[0 1 1 0 0 [0 1 0 1 0
1 0 1 0 0 1 0 1 0 0
1 0 0 1 0 0 1 0 1 0
0 0 1 0 1 0 0 1 0 1
0 0 0 1 0] 0 0 0 1 0]
但它不应该写出这样的信息:"两个图形不具有相同的顶点度数"但它写了它。我不知道该怎么做。 如果有可能请指导我。
int temp = 0;
int temp2 = 0;
int gg = 1;
for (int ia = 0; ia < m; ia++)
{
for (int ja = 0; ja < m; ja++)
{
if (j.f[ia][ja] == 1)
{
temp++;
}
}
for (int i = 0; i < m; i++&&gg == 1)
{
for (int j = 0; j < m; j++&&gg == 1)
{
if (g.f[i][j] == 1)
{
temp2++;
}
}
if (temp == temp2)
gg = 0;
else
{
cout << "two graphs don't have the same degree of vertices";
system("pause");
exit(1);
}
}
答案 0 :(得分:0)
请改为尝试:
int temp=0;
int temp2=0;
for(int i = 0; i < m; i++)
for(int j = 0; j < m; j++)
temp += j.f[i][j];
for(int i = 0; i < m; i++)
for(int j = 0; j < m; j++)
temp2 += g.f[i][j];
if(temp!=temp2){
cout<<"two graphics don't have the same degree of vertices";
system("pause");
exit(1);
}
这段代码的作用是先完成两个顶点的检查程度,然后进行比较。你的代码正在做的是在第一个图的检查中嵌套第二个完整图的检查,并且由于代码结构不良而发生了奇怪的行为。完成两项检查,然后进行比较。