Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

c++ da matris çarpımı


fungisultan

Öne çıkan mesajlar

Merhaba. Pointer kullanarak iki boyutlu matris çarpımı yaptım. Ancak çarpım matrisinde bir hata var sanırım. Program çalışıyor fakat çarpım matrisini görüntülemeden kapanıyor. Nerde hata yapıyorum anlayamadım. Yardımcı olursanız sevinirim.

#include<iostream>
#include<ctime>
#include<cstdlib>

using namespace std;

void multip_matrix(int **aptr, int **bptr, int **cptr, int k, int m, int n){
int i,j,l;
for(i=0; i<k; i++){
for(l=0;l<n; l++){
*(*(cptr+i)+l)=0;
for(j=0;j<m; j++){
*(*(cptr+i)+l)= *(*(cptr+i)+l)+(*(*(aptr+i)+j))*(*(*(bptr+j)+l));}
cout<<*(*(cptr+i)+l)<<"t";}
cout<< endl; }

}
int main()
{
srand(time(NULL));
int k,m,n,i,j;
cout<<"k icin bir deger giriniz=";
cin>>k;
cout<<"m icin bir deger giriniz="; cin>>m;
cout<<"n icin bir deger giriniz="; cin>>n;
int A[k][m],B[m][n],C[k][n];
int *aptr=&A[k][m], *bptr=&B[m][n], *cptr=&C[k][n];
for(i=0;i<k;i++){
aptr=new int [m];
}

for(i=0;i<m;i++){
bptr=new int [n];
}
for(i=0;i<k;i++){
cptr=new int [n];
}


for(i=0; i<k; i++){
for(j=0;j<m; j++){
A[i][j]=(rand()%6);
cout<<A[i][j]<<"t";
}
cout<<endl; }
cout<<endl;

for(i=0; i<m; i++){
for(j=0;j<n; j++){
B[i][j]=(rand()%6);
cout<<B[i][j]<<"t";
}
cout<<endl;}
multip_matrix(&aptr,&bptr, &cptr, k, m,n);
for(i=0;i<k;i++){
delete []aptr;}
for(i=0;i<m;i++){
delete []bptr; }
for(i=0;i<k;i++){
delete []cptr; }
system("PAUSE");
return 0;
}
Link to comment
Sosyal ağlarda paylaş


#include<iostream>
#include<ctime>
#include<cstdlib>

using namespace std;

void multip_matrix(int **aptr, int **bptr, int **cptr, int k, int m, int n){
int i,j,l;

for(i=0; i<k; i++){
for(l=0;l<n; l++){
**cptr=0;
for(j=0;j<m; j++){
*(*(cptr+i)+l)=*(*(cptr+i)+l)+(*(*(aptr+i)+j))*(*(*(bptr+j)+l));}
cout<<*(*(cptr+i)+l)<<"t";}
cout<< endl; } }

int main()
{
srand(time(NULL));
int k,m,n,i,j;
cout<<"k icin bir deger giriniz=";
cin>>k;
cout<<"m icin bir deger giriniz="; cin>>m;
cout<<"n icin bir deger giriniz="; cin>>n;
int A[k][m],B[m][n],C[k][n];
int **aptr=0;int **bptr=0;int **cptr=0;
aptr=new int *[k];bptr=new int *[m];cptr=new int *[k];
for(i=0;i<k;i++){
aptr[i]=new int [m];}

for(i=0;i<m;i++){
bptr[i]=new int [n];
}
for(i=0;i<k;i++){
cptr[i]=new int [n];
}
for(i=0; i<k; i++){
for(j=0;j<m; j++){
A[i][j]=(rand()%6);
cout<<A[i][j]<<"t";
}
cout<<endl; }


for(i=0; i<m; i++){
for(j=0;j<n; j++){
B[i][j]=(rand()%6);
cout<<B[i][j]<<"t";
}
cout<<endl;}
multip_matrix(aptr,bptr, cptr, k, m,n);
for(i=0;i<k;i++){
delete [] aptr[i];
delete [] aptr;}
for(i=0;i<m;i++){
delete [] bptr[i];
delete [] bptr; }
for(i=0;i<k;i++){
delete [] cptr[i];
delete [] cptr; }
system("PAUSE");
return 0;
}


Link to comment
Sosyal ağlarda paylaş

×
×
  • Yeni Oluştur...