kamal70
سه شنبه 24 اسفند 1389, 15:33 عصر
سلام
من برنامه ای برای دترمینان ماتریس n*nنوشتم فقط نمی دانم چرابرایnهای بزرگتراز2،بعدازگرفتن عناصرماتریس برنامه اخطارمی دهدوچیزی چاپ نمی کندمی خواستم شمابرنامه رااجرا کنیدو دلیل اشکال آن رابگویید؟
باتشکر
#include<iostream>
#include<conio>
#include<math>
int det(int n,int w,int a[][20]);
int main(){
int i,j,n,w=1,a[20][20];
cout<<"enter n for matrix n*n\n";
cin>>n;
cout<<"enter elements matrix\n";
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
cin>>a[i][j];
cout<<"determinant: "<<det(n,w,a);
getch();
}
int det(int n,int w,int a[][20])
{
int i,j,k=0,l,b[20][20],f;
if(n==2)
f=(a[1][1]*a[2][2]-a[2][1]*a[1][2]);
else
{
f=0;
for(w=1;w<=n;w++)
{
for(i=2;i<=n;i++)
{
l=0;
k++;
for(j=1;j<=n;j++)
{
if(j==w)
continue;
l++;
b[k][l]=a[i][j];
}
}
f+=(int)(a[1][w]*pow(-1,(1+w))*det(k,w,b));
}
}
return f;
}
من برنامه ای برای دترمینان ماتریس n*nنوشتم فقط نمی دانم چرابرایnهای بزرگتراز2،بعدازگرفتن عناصرماتریس برنامه اخطارمی دهدوچیزی چاپ نمی کندمی خواستم شمابرنامه رااجرا کنیدو دلیل اشکال آن رابگویید؟
باتشکر
#include<iostream>
#include<conio>
#include<math>
int det(int n,int w,int a[][20]);
int main(){
int i,j,n,w=1,a[20][20];
cout<<"enter n for matrix n*n\n";
cin>>n;
cout<<"enter elements matrix\n";
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
cin>>a[i][j];
cout<<"determinant: "<<det(n,w,a);
getch();
}
int det(int n,int w,int a[][20])
{
int i,j,k=0,l,b[20][20],f;
if(n==2)
f=(a[1][1]*a[2][2]-a[2][1]*a[1][2]);
else
{
f=0;
for(w=1;w<=n;w++)
{
for(i=2;i<=n;i++)
{
l=0;
k++;
for(j=1;j<=n;j++)
{
if(j==w)
continue;
l++;
b[k][l]=a[i][j];
}
}
f+=(int)(a[1][w]*pow(-1,(1+w))*det(k,w,b));
}
}
return f;
}