PDA

View Full Version : مشکل در صدا زردن یک تابع از درون تابع main



shiva_h
چهارشنبه 22 خرداد 1387, 09:57 صبح
سلام به همگی

من یک تابع main دارم که درون این تابه main باید یه تابع بازگشتی رو که بیرون mian تعریف کردم رو صدا بزنم .

می شه راهنمایی کنید که چی کار کنم ؟

این بر نامه من هسن دو تا error می ده


یکی که prototype تابع order در تابع mian تعریف نشده .

یکی اینکه آرایه p که من در main تعریف کردم . در تابع order تعریف نشده .

#include<values.h>
#include<iostream.h>
int main()
{
int d[7];
d[0]=5;
d[1]=2;
d[2]=3;
d[3]=4;
d[4]=6;
d[5]=7;
d[6]=8;
int m[7][7] ;
int p[6][6] ;
for ( int i=1;i<=6;i++)
{
m[i][i]=0;
}
int j, k,l,s=0;
for ( l=2;l<=6;l++)
{
for ( i=1;i<=6-l+1;i++)
{
j=i+l-1;
m[i][j]=MAXINT;
for ( k=i;k<=j-1;k++)
{
s=m[i][k]+m[k+1][j]+(d[i-1]*d[k]*d[j]);
if (s<m[i][j])
{
m[i][j]=s;
p[i][j]=k;
}
}
}
}
cout<<m[1][6];
order(1,6);
}
void order (int i,int j )
{
int k;
if (i==j)
cout<<"A"<<i;
else
{
k=p[i][j];
cout<<"(";
order(i,k);
order(k+1,j);
cout<<")";
}
}



ممنون مس شم اگه راهنمایی کنید .

Nima_NF
چهارشنبه 22 خرداد 1387, 16:05 عصر
باید تابع را قبل از main اعلان کنید و برای p هم می توانید آن را عمومی تعریف کنید و یا به صورت ارگومان به تابع order ارسال کنید:



#include<values.h>
#include<iostream.h>

void order (int ,int);
int p[6][6] ;

int main()
{
//....