| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 597 人关注过本帖
标题:本吊丝总算弄出来了,用函数编写的矩阵乘和倒置的运算
只看楼主 加入收藏
令狐少侠56
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:320
专家分:175
注 册:2014-4-10
结帖率:58.18%
收藏
 问题点数:0 回复次数:8 
本吊丝总算弄出来了,用函数编写的矩阵乘和倒置的运算
#include "stdio.h"

void creat(int a[10][10],int m,int n)//这里定义m,n是为了将main函数中的m,n作用于它
{
    int i,j;   
    printf("请输入矩阵每输入一行按下回车键\n");
    for(i=0;i<m;i++)
        {   
            for(j=0;j<n;j++)
                scanf("%d",&a[i][j]);   
        }
   
}

void shuchu(int a[10][10],int m,int n) /*输出函数,记住定义时是a[10][10]而不是
                                       a,调用时是将数组付给形参,实际上形参数组可以不指定大小,可结果却错了*/
{
    int i,j;
    for(i=0;i<m;i++)
    {
        for(j=0;j<n;j++)
            {
                printf("%5d",a[i][j]);
            }
            printf("\n");
    }
}

void zhuanzhi(int b[10][10],int a[10][10],int m,int n)    //矩阵的转置
{    int i,j;
        for(i=0;i<m;i++)
            for(j=0;j<n;j++)
                b[j][i]=a[i][j];
}

void chen(int a[10][10],int b[10][10],int c[10][10],int m,int n)        //矩阵相乘
{
    int i,j,k;
    for(i=0;i<m;i++)
        for(j=0;j<m;j++)
        {   
                c[i][j]=0;
            for(k=0;k<n;k++)                    //k一直加到n而非m
            {
                    c[i][j]=c[i][j]+a[i][k]*b[k][j];
            }
        }
}

void main()
{

    int a[10][10];
    int b[10][10];
    int c[10][10];            //两矩阵的乘积
    int m,n;
    printf("请输入矩阵的行数m:\n");    //不超过十行   
    scanf("%d",&m);
    printf("请输入矩阵的列数n:\n");
    scanf("%d",&n);

    creat(a,m,n);                    //建立矩阵,调用时是将数组名作为参数传递,而定义时是定义数组
    printf("输出原矩阵\n");
    shuchu(a,m,n);                //输出矩阵,m,n分别表示函数,定义函数时尽量不要和库函数同名


    zhuanzhi(b,a,m,n);            //函数的转置,转置后的输出,行列变换了,注意调用输出函数
    printf("输出转置后的矩阵\n");
    shuchu(b,n,m);                //输出转置后矩阵

    chen(a,b,c,m,n);
    printf("输出矩阵的乘积\n");
    shuchu(c,m,m);


}
搜索更多相关主题的帖子: include 
2015-03-17 00:10
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
還行,代碼這樣是不是比之前好看了許多?要整理、修改,也輕鬆了許多。我當你的結果對了,按這個方向努力吧,以後寫程序盡量分拆爲函數,這個思想必須從“小”培養,不要養成了壞習慣之後再花大力氣去改,到時積重難返就很痛苦了。

授人以渔,不授人以鱼。
2015-03-17 00:22
令狐少侠56
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:320
专家分:175
注 册:2014-4-10
收藏
得分:0 
回复 2楼 TonyDeng
恩恩,谢谢
2015-03-17 21:03
半夏雨巷
Rank: 2
等 级:论坛游民
威 望:1
帖 子:13
专家分:17
注 册:2015-3-18
收藏
得分:0 
回复 楼主 令狐少侠56
我也在向你们学习
2015-03-18 12:22
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
专门的数学软件做起来非常方便

octave> a = [
>      [1 2 3]
>      [4 5 6]
>      [7 8 9]
>     ]
a =

   1   2   3
   4   5   6
   7   8   9

octave> a'
ans =

   1   4   7
   2   5   8
   3   6   9

octave> a .* a
ans =

    1    4    9
   16   25   36
   49   64   81



[ 本帖最后由 zklhp 于 2015-3-18 12:30 编辑 ]
2015-03-18 12:26
令狐少侠56
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:320
专家分:175
注 册:2014-4-10
收藏
得分:0 
回复 5楼 zklhp
matlab??
2015-03-18 12:44
令狐少侠56
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:320
专家分:175
注 册:2014-4-10
收藏
得分:0 
回复 4楼 半夏雨巷
你相信我大四吗???孩子你大一的话一定要一直学习不要动摇,
2015-03-18 12:45
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
以下是引用令狐少侠56在2015-3-18 12:44:24的发言:

matlab??

没发现提示符是Octave么
2015-03-18 12:47
code力力
Rank: 5Rank: 5
来 自:宜昌
等 级:职业侠客
威 望:2
帖 子:215
专家分:338
注 册:2015-1-12
收藏
得分:0 
回复 7楼 令狐少侠56
学长,你说的是我吗?

你醒了?快起来敲代码!!
2015-03-18 13:01
快速回复:本吊丝总算弄出来了,用函数编写的矩阵乘和倒置的运算
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017759 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved