Yazmaya çalıştığım kodda bizden istenen şuydu:"iki boyutlu iki tane matrisin çarpımı isteniyor.matris boyutlarını kullanıcı girecek ve matris elemanlarının değerleri random ile rastgele atanacak.Ayrıca pointer kullanımı isteniyor."
#include <iostream>
#include <cstdio>
using namespace std;
int main(){
int sutunsayisi_1,sutunsayisi_2,satirsayisi_1,satirsayisi_2;
int **matris_1,**matris_2,**carpim;
tekrar:
cout<<"ilk matrisin satir sayisini giriniz:";
cin>>satirsayisi_1;
cout<<"ilk matrisin sutun sayisini giriniz:";
cin>>sutunsayisi_1;
cout<<"ikinci matrisin satir sayisini giriniz:";
cin>>satirsayisi_2;
cout<<"ikinci matrisin sutun sayisini giriniz:";
cin>>sutunsayisi_2;
//çarpım olur mu diye bakıyoruz
if(satirsayisi_1=!sutunsayisi_2)
{
cout<<"carpma islemi yapilamaz!,tekrar değer giriniz:";
goto tekrar;
}
//1.matris tanımı
matris_1=new int *[satirsayisi_1];
for(int i=0;i<satirsayisi_1;i++){
*(matris_1+i)=new int[sutunsayisi_1];
}
//2.matris tanımı
matris_2=new int *[satirsayisi_2];
for(int i=0;i<satirsayisi_2;i++){
*(matris_2+i)=new int[sutunsayisi_2];
}
//çarpım matrisinin tanımı
carpim=new int *[satirsayisi_1];
for(int i=0;i<satirsayisi_1;i++){
*(carpim+i)=new int[sutunsayisi_2];
}
//1.matris deger atama
for(int i=0;i<satirsayisi_1;i++){
for(int j=0;j<sutunsayisi_1;j++)
*(*(matris_1+i)+j)=rand()%10;
}
//2.matris deger atama
for(int i=0;i<satirsayisi_2;i++){
for(int j=0;j<sutunsayisi_2;j++)
*(*(matris_2+i)+j)=rand()%10;
}
//carpim matrisinin tüm elemanlarını 0 atarız.
for(int k=0;k<satirsayisi_1;k++)
{
for(int l=0;l<sutunsayisi_2;l++)
{
carpim[k][l]=0;
}
}
getchar();
for(int x=0;x<satirsayisi_1;x++)
{
cout<<"girdi4";
for(int y=0;y<sutunsayisi_2;y++){
cout<<"carpim matrisi"<<carpim[x][y];
}
}
getchar();
//çarpım kısmı
for(int i=0;i<satirsayisi_1;i++){
for(int j=0;j<sutunsayisi_2;j++){
for(int k=0;k<satirsayisi_2;k++){
carpim[i][j]+=(matris_1[i][k]) * (matris_2[k][j]);
}
}
}
getchar();
//yazdırma kısmı
for(int x=0;x<satirsayisi_1;x++){
for(int y=0;y<sutunsayisi_2;y++){
cout<<"carpim matrisi"<<carpim[x][y];
getchar();
}
}
return 1;
}