最后使用switch-case语句对四种形态的九九乘法表进行整理以完善程序。首先,我们嵌套两个for循环语句得到一个方形的九九乘法表。得到的九九乘法表方形块如下。下一步,我们对方形块进行“切割”,这里我们以左下乘法表为示例。
由图我们可以添加两条约束:1.左下乘法表打印斜边的边界条件为i等于j(本文打印顺序为i×j),即当i>=j时,乘法式显示,当i2.换行条件为j==9;同理,我们可以得到右上乘法表。但是当我们想要切割左上和右下乘法表时,可以发现缺少了部分乘法公式。
1,若程序定义为三行三列的矩阵,并在主函数中键盘赋值。请编写函数juzhen(int a[][3],int n),函数功能是:使矩阵左下角元素中的值乘以.例如:若矩阵中的值为:1 9 7
2 3 8
4 5 6
n=3,则矩阵值变为:
1 9 7
6 9 8
12 15 18
注:二维数组下三角元素每行最后元素的列标和该列的列号一致
#include <stdio.h>
int juzhen(int a[][3],int n)
{
int i,j
for (i=1i<3i++)
for (j=0j<=ij++)
a[i][j]=a[i][j]*n
}
main()
{
int i,j,a[3][3],m
clrscr()
printf("please enter 9 numbers :\n")
for (i=0i<3i++)
for (j=0j<3j++)
scanf("%d",&a[i][j])
printf("the old ju zhen is:\n")
for (i=0i<3i++)
{
for (j=0j<3j++)
printf("%3d",a[i][j])
printf("\n")
}
printf("please enter a int number:\n")
scanf("%d",&m)
juzhen (a,m)
printf("the new ju zhen is:\n")
for (i=0i<3i++)
{
for (j=0j<3j++)
printf("%3d",a[i][j])
printf("\n")
}
}
2,请编写函数juzhen,该函数的功能是:将三行四列矩阵x乘以四行三列矩阵y,结果放在三行三列矩阵中。矩阵相乘的基本方法是:矩阵Xy中行列下标分别为i,j的元素的值,是矩阵X中第i行上四个元素与矩阵Y中第j列上四个元素对应相乘的积。
X和Y矩阵原型可运行后看到!
#include <conio.h>
#include <stdio.h>
void juzhen (int a[3][4],int b[4][3],int ab[3][3])
{
int i,j,z
for (i=0i<3i++)
for (j=0j<4j++)
for (z=0z<3z++)
ab[i][z]=ab[i][z]+a[i][j]*b[j][z]/*此得为要填写的内容*/
}
main()
{
int x[3][4]={1,0,1,1,2,1,0,1,1,2,0,3}
int y[4][3]={1,1,1,0,0,0,2,1,1,1,1,3}
int xy[3][3]={0},i,j
clrscr()
juzhen (x,y,xy)
printf("x ju zhen is:\n")
for (i=0i<3i++)
{
for (j=0j<4j++)
printf("%3d",x[i][j])
printf("\n")
}
printf("y ju zhen is:\n")
for (i=0i<4i++)
{
for (j=0j<3j++)
printf("%3d",y[i][j])
printf("\n")
}
printf("xy ju zhen is:\n")
for (i=0i<3i++)
{
for (j=0j<3j++)
printf("%3d",xy[i][j])
printf("\n")
}
}
由于你没有说要求,我就写了两个,这是两道比较精典的求c语言矩阵乘法程序
#include<stdio.h>int i
int n
int aa[1000] /*最多1000个数相乘,可以自己修改*/
int sum=1
void main()
{
printf("请输入要求相乘数的个数:")
scanf("%d",&n)
printf("请输入要求相乘数的数字:")
printf("\n")
for(i=0i<ni++)
{
scanf("%d",&aa[i])
sum=sum*aa[i]
}
printf("计算结果为%d:",sum)
printf("\n")
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)