veniz2008
سه شنبه 06 دی 1390, 19:45 عصر
سلام دوستان،من برنامه n وزیر رو با ++c نوشتم،اما موقع اجرا 4 تا خطا میده،من کدی رو که نوشتم به همراه خطاها میزارم،اساتید لطف کنن خطاها رو بهم بگن،تشکر از کمکی که میکنید،
کد برنامه:
#include<iostream.h>
#include<math.h>
#include<conio.h>
int *col,n;
bool promising(int);
void queens(int i)
{
int j;
if(promising(i))
if (i==n){
for(int index=1;index<=n;index++)
cout<<col[index]<<" ";
cout<<endl;
}
else
for(j=1;j<=n;j++)
{
col[i+1] = j;
queens(i+1) ;
}
}
bool promising(int i)
{
int k;
bool myswitch;
k=1;
myswitch = true;
while (k<i && myswitch)
{
if(col[i]==col[k]||abs(col[i]-col[k])==(i-k))
myswitch = false;
k++;
}
return myswitch;
}
void main()
{
cout<<"Enter Number Of Queens\n";
cin>>n;
col=new int[n];
queens(0);
getch();
}
خطاها:
1. خطای مربوط به تعریف تابع promising در خط 7 برنامه، declaration syntax error
2.میگه تابع promising در خط 12 که درون تابع queen صدا زده شده،تعریف نشده و قابل تشخیص نیست.
3.متغیر bool مربوط به تابع promising در خط 26 برنامه،بیش از یک بار مقداردهی اولیه شده.
4.در واقع همون خطای شماره 1 رو میده و خطای syntax میگیره از تعریف تابع promising(این خطا مربوط به خط 26 هستش).
کد برنامه:
#include<iostream.h>
#include<math.h>
#include<conio.h>
int *col,n;
bool promising(int);
void queens(int i)
{
int j;
if(promising(i))
if (i==n){
for(int index=1;index<=n;index++)
cout<<col[index]<<" ";
cout<<endl;
}
else
for(j=1;j<=n;j++)
{
col[i+1] = j;
queens(i+1) ;
}
}
bool promising(int i)
{
int k;
bool myswitch;
k=1;
myswitch = true;
while (k<i && myswitch)
{
if(col[i]==col[k]||abs(col[i]-col[k])==(i-k))
myswitch = false;
k++;
}
return myswitch;
}
void main()
{
cout<<"Enter Number Of Queens\n";
cin>>n;
col=new int[n];
queens(0);
getch();
}
خطاها:
1. خطای مربوط به تعریف تابع promising در خط 7 برنامه، declaration syntax error
2.میگه تابع promising در خط 12 که درون تابع queen صدا زده شده،تعریف نشده و قابل تشخیص نیست.
3.متغیر bool مربوط به تابع promising در خط 26 برنامه،بیش از یک بار مقداردهی اولیه شده.
4.در واقع همون خطای شماره 1 رو میده و خطای syntax میگیره از تعریف تابع promising(این خطا مربوط به خط 26 هستش).