c语言,在主函数中输入3×3的矩阵ab和c,编写三个函数分别计算c=a+b,c=a-b,c=a*b

c语言,在主函数中输入3×3的矩阵ab和c,编写三个函数分别计算c=a+b,c=a-b,c=a*b并将计算结果返回主函数输出。。。用指针写

调试正确给100,万分感谢

#include <stdio.h>
int main(void)
{
 void output(int num[][3]);
 int i, j;
 int a[3][3], b[3][3], c[3][3];
 puts("请输入矩阵a : ");
 for (i = 0; i < 3; ++i)
 {
  for (j = 0; j < 3; ++j)
   scanf("%d", a[i] + j);
 }
 puts("请输入矩阵b : ");
 for (i = 0; i < 3; ++i)
 {
  for (j = 0; j < 3; ++j)
   scanf("%d", b[i] + j);
 }
 puts("a+b : ");
 for (i = 0; i < 3; ++i)
 {
  for (j = 0; j < 3; ++j)
   c[i][j] = a[i][j] + b[i][j];
 }
 output(c);
 puts("a-b : ");
 for (i = 0; i < 3; ++i)
 {
  for (j = 0; j < 3; ++j)
   c[i][j] = a[i][j] - b[i][j];
 }
 output(c);
 puts("a*b : ");
 for (i = 0; i < 3; ++i)
 {
  for (j = 0; j < 3; ++j)
   c[i][j] = a[i][j] * b[i][j];
 }
 output(c);
 return 0;
}
void output(int num[][3])
{
 int i, j;
 for (i = 0; i < 3; ++i)
 {
  for (j = 0; j < 3; ++j)
   printf("%-5d", num[i][j]);
  putchar('\n');
 }
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-08-09
#include<stdio.h>
void asum(double a[3][3],double b[3][3],double c[3][3])
{ int i,j; for ( i=0;i<3;i++ ) for ( j=0;j<3;j++ ) c[i][j]=a[i][j]+b[i][j];
}
void asub(double a[3][3],double b[3][3],double c[3][3])
{ int i,j; for ( i=0;i<3;i++ ) for ( j=0;j<3;j++ ) c[i][j]=a[i][j]-b[i][j];
}
void amul(double a[3][3],double b[3][3],double c[3][3])
{ int i,j; for ( i=0;i<3;i++ ) for ( j=0;j<3;j++ ) c[i][j]=a[i][j]*b[i][j];
}
void main()
{ double a[3][3],b[3][3],c[3][3];
int i,j;
for ( i=0;i<3;i++ ) for ( j=0;j<3;j++ ) scanf("%lf",&a[i][j]);
for ( i=0;i<3;i++ ) for ( j=0;j<3;j++ ) scanf("%lf",&b[i][j]);
printf("c=a+b\n");
asum(a,b,c); for ( i=0;i<3;i++,printf("\n") ) for ( j=0;j<3;j++ ) printf("%16lf",c[i][j]);
printf("c=a-b\n");
asub(a,b,c); for ( i=0;i<3;i++,printf("\n") ) for ( j=0;j<3;j++ ) printf("%16lf",c[i][j]);
printf("c=a*b\n");
amul(a,b,c); for ( i=0;i<3;i++,printf("\n") ) for ( j=0;j<3;j++ ) printf("%16lf",c[i][j]);
}本回答被提问者采纳
第2个回答  2014-11-17
a、b、c都是3*3的矩阵么?追问

相似回答