[C++] 雖然已經考完上機
剛剛把第十二題用傳陣列的方式弄出來了...
#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
推
12/11 23:19, , 1F
12/11 23:19, 1F
→
12/11 23:26, , 2F
12/11 23:26, 2F
→
12/11 23:38, , 3F
12/11 23:38, 3F
→
12/12 01:09, , 4F
12/12 01:09, 4F
推
12/12 01:20, , 5F
12/12 01:20, 5F
→
12/12 01:23, , 6F
12/12 01:23, 6F
推
12/12 01:50, , 7F
12/12 01:50, 7F
→
12/12 04:20, , 8F
12/12 04:20, 8F
推
12/12 19:04, , 9F
12/12 19:04, 9F
推
12/13 14:49, , 10F
12/13 14:49, 10F
推
12/13 17:04, , 11F
12/13 17:04, 11F