n阶矩阵的乘法(C实现)

来源:互联网 发布:身份证号的js验证 编辑:程序博客网 时间:2024/05/16 09:59
#include "stdio.h"#include "stdlib.h"void main (){   int m,l,p,q;printf("输入第一个矩阵的维数m和l:");scanf("%d%d",&m,&l);printf("输入第二个矩阵的维数p和q:");scanf("%d%d",&p,&q);while (l!=p){printf("两个矩阵不匹配,不能进行相乘运算,请重新输入...\n\n");printf("输入第一个矩阵的维数m和l:\n");scanf("%d%d",&m,&l);printf("输入第二个矩阵的维数p和q:\n");scanf("%d%d",&p,&q);}double a[200][200]={0}, b[200][200]={0},sum=0;int i,j,k=0;for (i=0;i<m;i++){for (j=0;j<l;j++){a[i][j]=(double)rand()/RAND_MAX; }}printf("随机矩阵a是:\n");for (i=0;i<m;i++){for (j=0;j<l;j++){printf("%f ",a[i][j]);}printf("\n");}//cout<<"输入一个3*2的矩阵:"<<endl;for (i=0;i<p;i++){for (j=0;j<q;j++){b[i][j]=(double)rand()/RAND_MAX; }}printf("随机矩阵b是:\n");for (i=0;i<p;i++){for (j=0;j<q;j++){printf("%f ",b[i][j]);}printf("\n");}printf("ab相乘结果为:\n");for (i=0;i<m;i++){while (k<q){for (j=0;j<q;j++){sum = a[i][j]*b[j][k]+sum;     }   printf("%f ",sum);k++;sum=0;}k=0;printf("\n");}}

运行效果图


注意:(二维数组的传参真麻烦。以后想办法解决)

最近做矩阵运算处理,依据以往的懒想法,想直接搞一个 函数,可以传递 任何维数的矩阵进行运算。
所以,声明了这样一个函数:     void matrix_mult(float **p); 
然后再主函数中 声明了 一个 二维数组float a[3][3];
进而在使用时这样:matrix_mult(a);
之后悲剧,编译器提示:cannot convert parameter 1 from 'float [3][3]' to 'float ** '
有错误。
改正方法:
matrix_mult(float (*p)[N]);//N 为声明二维数组第二维的大小值,然后再进行传参:matrix_mult(a);OK了。
总结:这是一个老生常谈的问题:关于数组和指针
说明:
指针是一个变量名,而数组不是变量名,数组跟接近于一种结构体。
例子:
int *p; int a[2]; p = a;
int n = sizeof(p);//
int len = sizeof(a);
n 的值为4,而len的值为8;
int a[10][20]; //真正的二维数组,
int *b[10];  //定义分配了10个指针,没有初始化。换句话说,b是一个由10个整型(int)指针构成的指针数组。
int (*p)[3];//指向数组的指针
int (*p)();//指向函数的指针
int *p();//p是一个函数,返回值是一个int型指针
float ** 这里的p不是二维数组的指针,而是指向指针的指针,即二级指针。
正确的二维数组的指针应该是:Int a[2][2];Int (*p)[2];//定义时无论数组维数,只可忽略第一维
二维数组其实只是一个指针,而二级指针是指向指针的指针,所以二者并不等价

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 在丈夫面前被别人犯侵天翼电影 中文版丈夫的上司连续浸七天 吉尺明步110部连接 吉g明教师步中文字迅雷下载 吉次明涉作品 被丈夫好友侵犯有感觉了中文3 侵犯新娘在丈夫面前被侵先锋 吉朋步高清在线 吉译朋步查官 新娘在婚礼上的厕所被动态 在丈夫遗像面前被侵演员叫什么 吉译朋步30分钟视频教程 吉译朋步义兄 吉译朋步孩子线播放 丈夫面前侵犯中文高清在线播放 在线中文字幕最好看最经典 丈夫面前不允许出声的侵犯2 2018吉译明i作品全集一览 好看的中文字幕推荐 yellow字幕幕网 中文字幕人人视频在线萝莉 中文永久字幕在线播放 好看的字幕最新字幕一经典幕 母乳妻诱惑中文字幕 有什么好看的电影 2018好看的大陆电影 什么动漫电影好看中文 在线播放丝服制袜 2018最新手机中文字幕 中文字幕视频2018 中文字幕爸爸在线播放 濡x母 もう、やめて… 中文字幕在线手机播放2018 免费中文字幕 啄木鸟中文字幕在线播放军舰 中文字幕永久在线2016 免费伦电影中文字幕 大嫂潮湿中文字幕在线迅雷 小白看看永久播放平台 看永久看免费2018中文字 妻人射中文字幕