作者sb0917 (バカ)
看板NTUBIME101HW
標題[C++] 雖然已經考完上機
時間Thu Dec 11 20:37:32 2008
剛剛把第十二題用傳陣列的方式弄出來了...
#include <iostream>
#include <iomanip>
#include <ctime>
using namespace std;
void fun(int **,int **,int **,int m,int n,int l);
int main()
{
srand(time(NULL));
int a[11][11]={0};
int b[11][11]={0};
int c[11][11]={0};
int i,j,k,sum,m,n,l;
int *ap[11],*bp[11],*cp[11],**A,**B,**C;//真的是超麻煩...
cout << "Mat.A(MxN),Mat.B(NxL),Please input M,N,L:\n";
cin >> m >> n >> l;
cout << endl;
cout << "Matrix A(" << m << "x" << n << "):\n";
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
a[i][j] = rand()%9 + 1;
cout << setw(3) << a[i][j];
}
cout << endl;
}
cout << endl;
cout << "Matrix B(" << n << "x" << l << "):\n";
for(i=0;i<n;i++)
{
for(j=0;j<l;j++)
{
b[i][j] = rand()%9 + 1;
cout << setw(3) << b[i][j];
}
cout << endl;
}
for(i=0;i<11;i++)
{
ap[i] = a[i];
cp[i] = c[i];
bp[i] = b[i];
}
A = ap;
B = bp;
C = cp;
fun(A,B,C,m,n,l);
cout << endl;
cout << "Matrix C(" << m << "x" << l << "):\n";
for(i=0;i<m;i++)
{
for(j=0;j<l;j++)
cout << setw(4) << c[i][j];
cout << endl;
}
system("pause");
return 0;
}
void fun(int **a,int **b,int **c,int m,int n,int l)
{
int sum,i,j,k;
for(i=0;i<m;i++)
for(j=0;j<l;j++)
{
sum = 0;
for(k=0;k<n;k++)
sum += a[i][k]*b[k][j];
c[i][j] = sum;
}
}
--------
發牌程式如果不想設全域變數就只能靠傳雙重指標了...
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 125.232.97.252
推 typenephew:這是.....樓下你懂嗎? 12/11 23:19
→ ck940560:有待研究 顆顆 那個**不太了解 12/11 23:26
→ sb0917:我也是今天才懂的... 12/11 23:38
→ petroheat:五樓你懂嗎? 12/12 01:09
推 vincent79715:我要研究一下 六樓你說呢? 12/12 01:20
→ sb0917:好難我不會 12/12 01:23
推 petroheat:聽說八樓是神手耶~ 12/12 01:50
→ kent2368:我是神車 12/12 04:20
推 xx7983:= =" 怎麼越來越向鄉民呢?!XDDD 12/12 19:04
推 lostmyself:GOOD JOB 12/13 14:49
推 typenephew:助教現身!!!!! 12/13 17:04