簡體   English   中英

在C ++程序中找不到邏輯錯誤

[英]Cannot find logical error in C++ program

我正在將時間表生成器作為項目。

代碼的一部分似乎有邏輯錯誤。

void _tmain(int argc, _TCHAR* argv[])
{
    int time=4;
    int classes=2;
    int teacher=4;
    const int column=4;     
    const int rows=8;           
    int table[rows][column];
    int final_table[rows][column];
    int cell;
    int temp=time;
    int temp2=classes;
    int temp3=teacher;
    int cell_reset=111;
    int cell_temp;
    int k=0;
    int selector_temp=0;
    int selector_temp2=0;

    cell=111;

    //array initilization loop
    for(int i=0;i<rows;i++)
    {
        for(int j=0;j<rows;j++)
        {
            table[i][j]=-1;
        }
    }

    for(int i=0;i<rows;i++)
    {
        for(int j=0;j<rows;j++)
        {
            final_table[i][j]=-1;
        }
    }

    //Number generator loop
    for(int i=0;i<rows;)
    {
        while(k<classes)
        {
            for(int j=0;j<column;j++)
            {
                table[i][j]=cell;
                cell++;
            }
            cell=cell_reset+10;
            k++;
            i++;
        }
        k=0;
        cell=cell_reset+100;
        cell_reset=cell;
    }

    //selector loop 
    int counter=0;
    for(int i=0;i<rows;i++)
    {
        counter=0;
        for(int j=0;j<column&&counter<1;j++)
        {
            if(table[i][j]==selector_temp+10)
            {
                table[i][j]=-1;
            }
            if(table[i][j]==selector_temp-10)
            {
                table[i][j]=-1;
            }
            if(table[i][j]!=-1)
            {
                selector_temp=table[i][j];
                final_table[i][j]=table[i][j];
                for(int gg=(j+1);gg<column;gg++)
                {
                    table[i][gg]=-1;
                }
                selector_temp2=selector_temp;
                while(k<time)
                {
                    selector_temp2+=100;
                    for(int ii=0;ii<rows;ii++)
                    {
                        for(int jj=0;jj<column;jj++)
                        {
                            if(table[ii][jj]==selector_temp2)
                            {
                                table[ii][jj]=-1;
                            }
                        }
                    }
                    k++;
                }
                k=0;
                counter++;
            }

        }
    }

//display loop
        for(int i=0;i<rows;i++)
        {
        for(int j=0;j<column;j++)
        {
            cout<<final_table[i][j];
            cout<<" ";
        }
        cout<<endl;
        }
}//end of main bracket

這段代碼生成的正是我想要的。

但是當我嘗試運行此代碼時,編譯器給我錯誤

變量表周圍的堆棧已損壞。

我選擇忽略此錯誤,然后程序為我提供了正確的結果。

我試圖找到此錯誤的根源,但我無法獲得最正確的結果,因此,如果找不到該錯誤,如何禁用編譯器給我的提示。

兩個初始化循環是錯誤的-內部循環應具有j<column

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM