maryam9903
جمعه 15 خرداد 1394, 13:38 عصر
1 برنامه نوشتم که 2 تا ماتریس دریافت کنه و حاصل جمع و ترانهاده و حاصل ضرب دو ماتریس رو چاپ میکنه.ولی دو تا اشکال داره.قسمت ترانهاده با اینکه به نظر خودم کدش درسته ولی اشتباه چاپ میکنه و اینکه من این برنامه رو برای ماتریس 3 در 3 نوشتم.اگه بخام خوده کاربر بگه ک ماتریس چن در چن باشه باید چیکار کنم؟
اینم کدی که نوشتم :
#include <iostream>
using namespace std;
int a[3][3],b[3][3],c[3][3];
void sum()
{
int i,j;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
c[i][j]=a[i][j]+b[i][j];
}
}
void taranahade()
{
int i,j,temp;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
temp=a[i][j];
a[j][i]=temp;
}
}
}
void zarb()
{
int i,j,k;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
c[i][j]=0;
for(k=0;k<3;k++)
c[i][j]+=a[i][k]*b[k][j];
}
}
}
void chap()
{
int i,j;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
cout<<c[i][j]<<" ";
cout<<"\n";
}
}
int main()
{
int i,j;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
cin>>a[i][j];
}
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
cin>>b[i][j];
}
sum();
chap();
taranahade();
chap();
zarb();
chap();
}
اینم کدی که نوشتم :
#include <iostream>
using namespace std;
int a[3][3],b[3][3],c[3][3];
void sum()
{
int i,j;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
c[i][j]=a[i][j]+b[i][j];
}
}
void taranahade()
{
int i,j,temp;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
temp=a[i][j];
a[j][i]=temp;
}
}
}
void zarb()
{
int i,j,k;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
c[i][j]=0;
for(k=0;k<3;k++)
c[i][j]+=a[i][k]*b[k][j];
}
}
}
void chap()
{
int i,j;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
cout<<c[i][j]<<" ";
cout<<"\n";
}
}
int main()
{
int i,j;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
cin>>a[i][j];
}
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
cin>>b[i][j];
}
sum();
chap();
taranahade();
chap();
zarb();
chap();
}