user-0 提问: 求一位C语言大神,帮我加个程序

回复:
user: user-0
content: 这个没有要求，只要在这个程序中能够再加上个矩阵对角化就行，能符合上面的程序运行出来

user: user-1
content: 个人觉得你应该把矩阵对角化表述清楚。什么需求、什么结果说明白了，就算没学过矩阵对角化的，也能帮你把程序写出来

user: user-2
content: #include<stdio.h> #include<math.h>   /*--------------------全局变量定义-------------------------*/ int n, c = 0; int a[100][100], b[100][100]; int fc[100][100];   /*--------------------函数声明-----------------------------*/ void print(); void print_sub(); void input_marry(); void add_marry(); void sub_marry(); void mut_marry();  /*------------------主函数-----------------*/ void main() { 	print();   	scanf("%d",&c); 	while(c!=0) 	{     		if(c==1) {input_marry();}	 		if(c==2) {add_marry();}	 		if(c==3) {sub_marry();}	 		if(c==4) {mut_marry();}	 		printf("请选择运算：\n\n"); 		scanf("%d",&c);	  	}	 }  /*----------------打印函数------------------*/ void print() { 	printf("          矩阵运算管理系统          \n"); 	printf("------------------------------------\n"); 	printf("1 输入矩阵\n"); 	printf("2 矩阵相加\n"); 	printf("3 矩阵相减\n"); 	printf("4 矩阵相乘\n"); 	printf("0 退出系统\n"); 	printf("------------------------------------\n"); 	printf("请选择:\n\n"); }   /*---------------矩阵输入-----------------------*/ void input_marry() { 	int i, j; 	printf("请输入矩阵的维数\n\n"); 	scanf("%d",&n); 	/*---------------第一个矩阵输入-----------------*/ 	printf("请输入第一个矩阵a（共有%4d个元素）:\n\n",n*n); 	for(i=0;i<n;i++) 		for(j=0;j<n;j++) 		{ 			scanf("%d",&a[i][j]); 		} 	 	/*----------------打印第一个矩阵---------------*/ 	printf("您输入的矩阵a=\n\n"); 	for(i=0;i<n;i++) 	{ 		for(j=0;j<n;j++) 		{  			printf("%10d",a[i][j]);			 		} 		printf("\n"); 	}  	/*---------------第二个矩阵输入-----------------*/		 		printf("请输入第二个矩阵b（共有%d个元素）:\n\n",n*n); 		for(i=0;i<n;i++) 		{ 			for(j=0;j<n;j++) 			{ 				scanf("%d",&b[i][j]); 			} 		} 		/*----------------打印第二个矩阵---------------*/ 		printf("您输入的矩阵b=\n\n"); 		for(i=0;i<n;i++) 		{ 			for(j=0;j<n;j++) 			{  				printf("%10d",b[i][j]); 			} 			printf("\n"); 		} 		print_sub();  }   /*----------------矩阵加法运算-----------------*/ void add_marry() { 	int i,j; 	for(i=0;i<n;i++) 		for(j=0;j<n;j++) 		{ 			fc[i][j] = a[i][j] + b[i][j];		 		}  	printf("矩阵和为：\n\n"); 	for(i=0;i<n;i++) 	{ 		for(j=0;j<n;j++) 		{  			printf("%10d",fc[i][j]); 		} 		printf("\n"); 	} 	print_sub();  }  /*----------------矩阵减法运算-----------------*/ void sub_marry() { 	int i,j; 	for(i=0;i<n;i++) 		for(j=0;j<n;j++) 		{ 			fc[i][j] = a[i][j] - b[i][j]; 		}  	printf("矩阵差为：\n\n"); 	for(i=0;i<n;i++) 	{ 		for(j=0;j<n;j++) 		{  			printf("%10d",fc[i][j]); 		} 		printf("\n"); 	} 	print_sub();  } /*----------------矩阵乘法运算-----------------*/ void mut_marry() { 	int k,i,j; 	for (i=0;i<n;i++) 		for (j=0;j<n;j++) 		{ 			fc[i][j] = 0; 			for (k=0; k<n; k++) 				fc[i][j] += a[i][k] * b[k][j]; 		} 		 	printf("矩阵积为：\n\n"); 	for(i=0;i<n;i++) 	{ 		for(j=0;j<n;j++) 		{  			printf("%10d",fc[i][j]); 		} 		printf("\n"); 	} 	print_sub(); 	            }  /*-------------------子打印函数-----------------*/ void print_sub() { 	printf("\n----------------------------------------------\n");     printf("\n2 矩阵相加；3 矩阵相减；4 矩阵相乘；0 退出系统\n"); 	printf("\n----------------------------------------------\n");	 }

user: user-0
content: 有会的吗?我比较急，大神告诉一下

user: user-0
content: 是啊，我也是这块弄不出来了，所以找个大神看看能不能帮我一下

user: user-3
content: 这个问题比较棘手啊！