C语言 动态生成矩阵,并实现其录入转置
2014-02-06 23:53
351 查看
#include <stdio.h> #include <stdlib.h> bool check(int row1,int col1,int row2,int col2); int *Multiplication(int *arr1,int *arr2,int row1,int col1,int row2,int col2); int main() { int row1=1,col1=1,row2=1,col2=1; int i,j; //检查相乘矩阵的有效性 label: printf("请输入要输入的两个矩阵的行数列数:\n"); printf("第一个矩阵的行数列数:"); scanf("%d%d",&row1,&col1); printf("第二个矩阵的行数列数:"); scanf("%d%d",&row2,&col2); if(check(row1,col1,row2,col2)) { //第一个矩阵数据的录入 printf("请输入第一个矩阵的数据:\n"); int *myarr1=(int *)malloc(row1*col1*sizeof(int)); for(i=0;i<row1;i++) { for(j=0;j<col1;j++) { scanf("%d",myarr1+col1*i+j); } } //第二个矩阵数据的录入 printf("请输入第二个矩阵的数据:\n"); int *myarr2=(int *)malloc(row2*col2*sizeof(int)); for(i=0;i<row2;i++) { for(j=0;j<col2;j++) { scanf("%d",myarr2+col2*i+j); } } //两个矩阵的显示 printf("两个矩阵的数据分别为:\n"); for(i=0;i<row1;i++) { for(j=0;j<col1;j++) { printf("%3d",*(myarr1+i*col1+j)); } printf("\n"); } for(i=0;i<row2;i++) { for(j=0;j<col2;j++) { printf("%3d",*(myarr2+i*col2+j)); } printf("\n"); } //计算两个矩阵相乘的结果并显示 int *result=Multiplication(myarr1,myarr2,row1,col1,row2,col2); printf("矩阵相乘的结果矩阵为:\n"); for(i=0;i<row1;i++) { for(j=0;j<col2;j++) { printf("%3d",*(result+i*col2+j)); } printf("\n"); } // for() } else { printf("所输入的两个矩阵不可以相乘\n请重新输入:\n"); goto label; } system("pause"); return 0; } bool check(int row1,int col1,int row2,int col2) { //printf("row1=%d,col1=%d,row2=%d,col2=%d\n",row1,col1,row2,col2); if(row1>0||row2>0||col1>0||col2>0) { if(col1==row2) return true; else return false; } else { return false; } } int *Multiplication(int *arr1,int *arr2,int row1,int col1,int row2,int col2) { int *tempt=(int *)malloc(row1*col2*sizeof(int)); for(int i=0;i<row1;i++) { for(int j=0;j<col2;j++) { int sum=0; for(int a=0;a<col1;a++) { sum=sum+ (*(arr1+i*col1+a)) * (*(arr2+a*col2+j)); } *(tempt+i*col2+j)=sum; } } return tempt; }
相关文章推荐
- 矩阵的转置和行列式等操作的c语言实现
- C语言实现矩阵的加减乘,转置,求逆等操作
- java 解决调用c语言实现简单HelloWorld函数生成.dll动态链接库的32位dll文件无法在64位机上运行
- C语言实现矩阵的转置
- 数据结构之---C语言实现矩阵的转置
- Linux下的C语言编程——指针实现矩阵转置
- C语言学习之用二维数组实现矩阵转置
- c语言实现矩阵的三元组表示 + 矩阵的转置
- 复数矩阵乘法C语言实现
- JavaSE JNI 动态注册本地方法(c语言实现native层)
- 实现动态数据生成Word文档并保存
- 简单高级搜索页面的简单实现,包括数据控件循环嵌套,DataTable动态生成数据添加等
- 再议动态二维数组,通过一句表达式完成矩阵的转置
- 3X3矩阵转置----调用函数----C语言进阶之路
- 利用Refly和CodeDom实现代码的动态生成和动态编译
- C#实现动态生成静态页面的类详解
- 一个UUID生成算法的C语言实现 --- WIN32版本
- Android NDK开发之 NEON 矩阵转置,矩阵乘法实现
- 38. 编写函数,实现B=A+A',即把矩阵A加上A转置,存放在B中
- VC程序中实现控件的动态生成与响应