C语言求任意两个矩阵相乘的算法(不同于大部分规格固定的矩阵乘法)
创新互联网站建设公司一直秉承“诚信做人,踏实做事”的原则,不欺瞒客户,是我们最起码的底线! 以服务为基础,以质量求生存,以技术求发展,成交一个客户多一个朋友!专注中小微企业官网定制,网站设计制作、做网站,塑造企业网络形象打造互联网企业效应。结果图如下 :
代码如下:
//----- 任意两个矩阵相乘
# include
int main (void)
{
char ch;
int a, b, c, d;
printf ("此算法用于任意两个矩阵相乘 \n矩阵1(a行b列)乘以矩阵2(c行d列),请您按顺序输入a、b、c、d,中间以空格隔开:\n");
scanf ("%d %d %d %d", &a, &b, &c, &d);
while (b != c)
{
printf ("您输入的矩阵规格不能相乘,请重新输入。\n");
printf ("矩阵1(a行b列)乘以矩阵2(c行d列),请按顺序输入a、b、c、d,中间以空格隔开:\n");
scanf ("%d %d %d %d", &a, &b, &c, &d);
}
while ((ch = getchar()) != '\n')
continue;
printf ("\n");
int i, j;
int f[100][100] = {0}; //100是随机大数,是算法能计算的矩阵上限
int g[100][100] = {0};
int h[100][100] = {0};
printf ("\n");
for (i=0;i {
printf ("请输入矩阵1的第%d行数据,元素之间用空格隔开:\n", (i+1));
for (j=0;j {
scanf ("%d", &f[i][j]);
}
while ((ch = getchar()) != '\n')
continue;
}
printf ("矩阵1为:\n");
for (i=0;i {
for (j=0;j printf (" %-10d ", f[i][j]);//-10是指左对齐,每个数占10格
printf ("\n");
}
printf ("\n");
for (i=0;i
printf ("请输入矩阵2的第%d行数据,元素之间用空格隔开:\n", (i+1));
for (j=0;j
scanf ("%d", &g[i][j]);
}
while ((ch = getchar()) != '\n')
continue;
}
printf ("矩阵2为:\n");
for (i=0;i
for (j=0;j
printf ("\n");
}
printf ("\n");
int k;
for (i=0;i {
for (j=0;j
h[i][j] = h[i][j] + f[i][k]*g[k][j];
}
}
printf ("结果矩阵为:\n");
for (i=0;i {
for (j=0;j
printf ("\n");
}
return 0;
}
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧