Please use
tags around your code.
That is just an (admittedly rather unhelpful) error message saying that you're missing a semicolon. The error message is likely to be "expected initializer before int", which is saying the compiler was hoping to find an initializer, but it got an
int instead.
The root of this is in the line before, where you have (effectively):
struct patrat { /* ... */ } A // no semicolon
Not only is that
A a duplicate, the missing semicolon is what lead to your particular compilation error.
(By the way, an initializer is just a statement that "initializes" a variable, or sets it to a value. It's a little bit confusing because there doesn't
have to be an initializer here – a semicolon is equally valid – but you get the error likely because the compiler sees that something else is there but can't recognise it as an initializer.)
Also, I would
highly recommend doing away with the global variables, and also updating to a (much) more modern compiler –
<iostream.h> is an ancient, non-standard variant from before C++98.