用函数的调用怎么实现矩阵的行变换,行倍加以及行辈乘???
你要哪的三种行变换?
能说二具体变换规则吗?
你题目的解答代码如下:
#include<stdio.h>
void fun1(int a[3][3])
{
int b[3];
int i,n,m;
printf("请输入需要交换的两个行\n");
scanf("%d%d",&m,&n);
for(i=0;i<3;i++)
{
b[i]=a[m-1][i];
a[m-1][i]=a[n-1][i];
a[n-1][i]=b[i];
}
}
void fun2(int a[3][3])
{
int i,n,m;
printf("请输入被加的行\n");
scanf("%d",&m);
printf("请输入加上的行\n");
scanf("%d",&n);
for(i=0;i<3;i++)
{
a[m-1][i] += a[n-1][i];
}
}
void fun3(int a[3][3])
{
int b[3];
int i,n,m,k;
printf("请输入被加的行\n");
scanf("%d",&m);
printf("请输入加上的行\n");
scanf("%d",&n);
printf("请输入乘数\n");
scanf("%d",&k);
for(i=0;i<3;i++)
{
a[m-1][i] += a[n-1][i]*k;
}
}
int main()
{
int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};
int b[3];
int i,j,n;
printf("现在有一个矩阵如下\n");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
printf("%d ",a[i][j]);
}
printf("\n");
}
printf("选择1任意两行交换\n");
printf("选择2任意一行加到任意一行上\n");
printf("选择3任意一行乘以一个数加到任意一行上\n");
printf("请选择123:");
scanf("%d", &n);
switch (n)
{
case 1:fun1(a); break;
case 2:fun2(a); break;
case 3:fun3(a); break;
default:
printf("输入错误");
return 0;
}
printf("现在开始输出...\n");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
printf("%d ",a[i][j]);
}
printf("\n");
}
return 0;
}
如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!