#include <iostream.h> //加密
#define N 3
int *mul(int s[][N],int x[])
{
int *b[3],i,j;
for(i=0;i<N;i++)
for(j=0;j<N;j++)
*b[i]=s[i][j]*x[j];
return b[3];
}
void main()
{
int a[N][N],s[9],i,j,*c[3],*d[3],*z[3];
cout<<"请输入加密矩阵:"<<endl;
for(i=0;i<N;i++)
for(j=0;j<N;j++)
cin>>a[i][j];
cout<<"请输入明文:"<<endl;
for(i=0;i<9;i++)
cin>>s[i];
int m[3]={s[0],s[1],s[2]}; //分派
int n[3]={s[3],s[4],s[5]};
int k[3]={s[6],s[7],s[8]};
c[3]=mul(a[N][N],m[3]);
d[3]=mul(a[N][N],n[3]);
z[3]=mul(a[N][N],k[3]);
cout<<"输出加密后的密文:"<<endl;
for(i=0;i<3;i++)
cout<<(char)*(c+i);
for(i=0;i<3;i++)
cout<<(char)*(d+i);
for(i=0;i<3;i++)
cout<<(char)*(z+i);
}