1
我正在制作一个时间表生成器作为一个项目。在C++程序中找不到逻辑错误
部分代码似乎有逻辑错误。
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
此代码正好生成我想要的。
但是当我尝试运行这段代码编译器给我的错误,围绕变量表
堆栈已损坏。
我选择忽略这个错误,然后程序给了我正确的结果。
我试图找到这个错误的来源,但我不能在最上面得到正确的结果,所以如果找不到我该如何禁用编译器给我的提示。
'空隙_tmain()'是无效的标准C++。 – 2011-12-24 11:38:01
这个错误说的究竟是什么?如果这是一个错误,你怎么能忽略它?相反,这是警告吗?当你编译代码或者你运行它时会发生吗?你正在使用哪种编译器? – jalf 2011-12-24 11:42:38
标准C++与否,'void _tmain()'是错误的。如果你使用微软的'_tmain()',它的原型就是返回一个'int'。 – 2011-12-24 11:42:44