I have only started learning borland c++ programming a few months ago, I'm actually a math student, so my knowledge of c++ is pretty limited. I have an assignment where X represents an ant that moves around in a 7x7 grid box. It can move up, left, down or right by 1 step at a time. I have already written the code, but sometimes the 1st 7x7 grid displayed is sometimes distorted. It only displayed a 7x3 grid. Please let me know what is the mistake I made. I know my course is not so efficient, I just want to get it working first. Please help me! I'm dying! =(

#include<iostream.h>
#include<conio.h>
#define size 20

void main()
{
srand(time(0));
int box;
int i,j,y=0, count, random, key;

for (i=0;i<7;i++)
for (j=0;j<7;j++){
box[j]=y+1;
y= box[j];
}
i=3;
j=3;
for (count=1;;count++)
{
random = rand()%4;

if (count==1)
key= box;
else if (random==0)
key= box[j=j+1];
else if (random==1)
key= box[j=j-1];
else if (random==2)
key= box[j];
else if (random==3)
key= box[j];

if (i<0||j<0)
goto out;
if (i>=7||j>=7)
goto out;

{
cout<<" ";
for(int line=0;line<7;line++)

cout<<"--- ";
}
cout<<endl;
for(int k=0;k<7;k++)
{
for(int l=0;l<7;l++)
{
if(key!=box[k][l])
cout<<"| ";

else if(key==box[k][l])
cout<<"| X ";

}
cout<<"|";
cout<<endl;
{
cout<<" ";
for(int line=0;line<7;line++)

cout<<"--- ";
cout<<endl;
}
}
cout<<endl<<endl;
}
out: cout<<"\nExit from program.";
getch();
}

Your code does what you said you wanted it to do for me, no problem displaying any of the grids. There are a number of improvements that you could make though.

The number one thing that you should probably do is use a more modern compiler/development environment. I hear that Code::Blocks is good on Windows. Personally, I like to use Qt Creator for small projects like this.

As far as your code goes:

1. `main` should return `int` , so your program should start `int main()` . Once you do this, you will have to end your program with `return 0;` (although you can return any `int` you like, it is conventional to return zero if everything went to plan). If you use a more modern compiler, it will complain if you try and do `void main()` (as it should).
2. Don't use `#define` like you have. You might as well declare `size` like this:
``````#include <iostream>

int main(){
const unsigned size = 20;

/* The rest of your program goes here as before */

}``````
3. Don't use `goto` in this context. `goto` is usually only used when trying to make some kind of run-time optimisation in code that has to run as fast as possible. It's always going to cost you readability, which is more important than the optimisation that you get from `goto` . In your case, you're in a loop when you call `goto` , so you can replace it with a `break;` and the loop will exit. In general, if you want to just skip to the end of your program at some point, you can `return` instead.