-
اشکال این برنامه کجاست
سلام من این برنامه رو با ویژوال استدیو 2008 نوشتم ولی ارور میده
یه برنامه ضرب دو ماتریسه
لطفا بهش یه نیگاه بندازید
[PHP]#include<iostream>
using namespace std;
int y[3][3]={0},z[3][3]={0},x[3][3]={0};
int i,j,k,n;
void getmatris1();
void getmatris2();
void totalmatris(int,int);
int main()
{
getmatris1();
getmatris2();
totalmatris( x,y);
return 0;
}
void getmatris1()
{
cout<<"\nyek matrise 3*3 vared konid :";
for(i=0;i<=2;i++)
{ cout<<endl;
for(j=0;j<=2;j++)
cin>>x[i][j];
}
}
void getmatris2()
{
cout<<"yek matrise 3*3 digar vared konid :";
for(i=0;i<=2;i++)
{ cout<<endl;
for(j=0;j<=2;j++)
cin>>y[i][j];
}
}
void totalmatris(int x[3][3],int y[3][3])
{
cout<<"zarb e do matrise ebarat ast az :\n";
for(k=0;k<=2;k++)
{ cout<<endl;
for(i=0;i<=2;i++)
{ n=0;
for(j=0;j<=2;j++)
{
n+=x[k][j]*y[j][i];
}
cout<<"z["<<k+1<<"]["<<i+1<<"]="<<n<<"\t";
}
}
cout<<endl;
}[/PHP]
ارور:
can not convert int[3] to int
-
سلام دوست عزیز
مشکل برنامه شما :
وقتی در برنامه تابع totalmatris را فراخوانی میکنید چون x ،y متغیر های سراسری هستند دیگر لازم نیست به به عنوان پارامتر ارسال شوند .در c ++ وقتی اسم یک ارایه به تنهایی نوشته شود به عنوان آدرس اولین خانه ارایه در نظر گرفته شده و جنس ان آدرس است پس باید به یک اشاره گر ارسال شود .
برنامه تصیح شده شما در کامپایلر بورلند به این صورت است :
[PHP]#include<iostream.h>
int y[3][3]={0},z[3][3]={0},x[3][3]={0};
int i,j,k,n;
void getmatris1();
void getmatris2();
void totalmatris();
int main()
{
getmatris1();
getmatris2();
totalmatris();
return 0;
}
void getmatris1()
{ cout<<"\nyek matrise 3*3 vared konid :";
for(i=0;i<=2;i++)
{ cout<<endl;
for(j=0;j<=2;j++)
cin>>x[i][j];
}
}
void getmatris2()
{cout<<"yek matrise 3*3 digar vared konid :";
for(i=0;i<=2;i++)
{ cout<<endl;
for(j=0;j<=2;j++)
cin>>y[i][j];
}
}void totalmatris()
{ cout<<"zarb e do matrise ebarat ast az :\n";
for(k=0;k<=2;k++)
{ cout<<endl;
for(i=0;i<=2;i++)
{ n=0;
for(j=0;j<=2;j++)
{
n+=x[k][j]*y[j][i];
}
cout<<"z["<<k+1<<"]["<<i+1<<"]="<<n<<"\t";
}
} cout<<endl;
}
[/PHP]