如何在每次具有不同大小的循环中再次声明相同的数组?

所以我正在做一个图形着色问题,其中我输入了要运行代码的测试用例的数量。这是代码:

#include <bits/stdc++.h>
using namespace std;


int main() {
    int test,num,i,j,k,l,sum,num1,num2,count,col;
    cin>>test;
    for(i=0;i<test;i++){
        sum = 0;
        cin>>num;
        int arr[num][num];

        for(j=0;j<num;j++){
            for(k=0;k<num;k++){
                arr[j][k] = 0;
            }
        }

        for(l=0;l<num-1;l++){
            cin>>num1>>num2;
            arr[num1-1][num2-1] = 1;
            arr[num2-1][num1-1] = 1;
        }

        int* colVert = new int[num];

        for(j=0;j<num;j++){
            colVert[j] = 0;
        }

        for(j=0;j<num;j++){
            count = 0;
            l=0;
            if(j == 0){
                colVert[j] = 1;
            }

            else{
                for(k=0;k<num;k++){
                    if(arr[j][k] == 1){
                        count++;
                    }
                }
                int colSeq[count];
                for(k=0;k<num;k++){
                    if(arr[j][k] == 1){
                        colSeq[l] = colVert[k];
                        l++;
                    }
                }
                sort(colSeq,colSeq+count);
                /*for(k=0;k<count;k++){
                    cout<<colSeq[k];
                }*/
                for(k=0;k<count;k++){
                    if(colSeq[k] != k+1){
                        col = k;
                        break;
                    }
                    else{
                        col = colSeq[k] + 1;
                    }
                }
                colVert[j] = col;
            }
        }

        for(i=0;i<num;i++){
            sum = sum + colVert[i];
        }

        cout<<sum<<endl;
    }
    return 0;
}

所以问题在于代码仅在第一个测试用例中运行,然后程序结束。我认为问题出在我声明colVert数组的方式上。那么如何正确执行它以使其在每种情况下都可以运行?

tftp156656 回答:如何在每次具有不同大小的循环中再次声明相同的数组?

保证该问题已解决。问题不在于如何声明colVert数组,而是一个非常愚蠢的错误:

for(i=0;i<num;i++){
            sum = sum + colVert[i];
        }

我在循环内的循环中使用了“ i”变量,该循环也使用“ i”作为其计数器。只需使用其他计数器变量即可解决此问题。

本文链接:https://www.f2er.com/3148744.html

大家都在问