| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 233 人关注过本帖
标题:感谢大家的帮忙,我回去思考过后还有点小错误无法理解,请再次指正
只看楼主 加入收藏
梁朝斌
Rank: 4
等 级:业余侠客
帖 子:192
专家分:288
注 册:2012-10-21
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:2 
感谢大家的帮忙,我回去思考过后还有点小错误无法理解,请再次指正
#include<stdio.h>
#define n 4

void value1(int a[n][n]); /*矩阵a的输入*/
void value2(int b[n][n]);/*矩阵b的输入*/
void mult(int a[][n],int b[][n],int c[][n]);/*矩阵求积操作*/
void madd(int a[n][n],int b[n][n],int c[n][n]);/*矩阵求和操作*/
void disp(int c[n][n]);/*矩阵输出*/

void main()
{
    int a[n][n],b[n][n],c[n][n];
    printf("输入矩阵a为:\n");
    value1(a);
    printf("输入矩阵b为:\n");
    value2(b);
    printf("矩阵求积后为:\n");
    mult(a,b,c);
    printf("矩阵求和后为:\n");
    madd(a,b,c);
    printf("输出矩阵为:\n");
    disp(c);
}




void value1(int a[n][n]) /*矩阵a的输入*/
{
    int i,k;

    printf("please input a[i][k]=\n");
    for(i=0;i<n;i++)
    {
        for(k=0;k<n;k++)
        {
            printf("a[%d][%d]=",i,k,a[i][k]);
            scanf("%d",&a[i][k]);
        }
    }

}
void value2(int b[n][n])/*矩阵b的输入*/
{
    int k,j;

    printf("please input b[k][j]=\n");
    for(k=0;k<n;k++)
    {
        for(j=0;j<n;j++)
        {
            printf("b[%d][%d]=",k,j,b[k][j]);
            scanf("%d",&b[k][j]);
        }
    }
}
void mult(int a[n][n],int b[n][n],int c[n][n])/*矩阵求积操作*/
{
    int i,j,s,k;
    for(i=0;i<n;i++)
        for(j=0;j<n;j++)
        {
            s=0;
            for(k=0;k<n;k++)
                c[i][j]=s;
            s+=value1(a)*value2(b);
        }
}

void madd(int a[n][n],int b[n][n],int c[n][n])/*矩阵求和操作*/
{
    int i,j;
    for(i=0;i<n;i++)
        for(j=0;j<n;j++)
        {
            c[i][j]=value1(a)+value2(b);
        }
}


void disp(int c[n][n])/*矩阵输出*/
{
    int i,j;
    printf("矩阵相乘后的结果为:\n");

    for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++)
        {
            printf("c[%d][%d]=%d  ",i,j,c[i][j]);
        printf("\n");
        }
   
    }
}

搜索更多相关主题的帖子: 矩阵 include 
2012-11-20 16:19
一个孩子
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:356
专家分:954
注 册:2012-10-1
收藏
得分:20 
程序代码:
#include<stdio.h>
#define N 4
/*
**  矩阵的输入
*/
void input_arry(int a[N][N])
{
    int i,j;
    for(i=0;i<N;i++)
        for(j=0;j<N;j++)
            scanf("%d",&a[i][j]);
}


/*
** 矩阵的打印
*/
void print_arry(int a[N][N])
{
    int i,j;
    for(i=0;i<N;i++)
    {
        for(j=0;j<N;j++)
        {
            printf("%d ",a[i][j]);
        }
        putchar(10);
    }
}

/*
**  矩阵的相乘
*/
void Mul_arry(int a[N][N],int b[N][N])
{
    int i,j,k;
    int c[N][N]={0};
    for(i=0;i<N;i++)
    {
        for(j=0;j<N;j++)
            for(k=0;k<N;k++)
            {
                c[i][j]=c[i][j]+a[i][k]*b[k][j];

            }
    }
    for(i=0;i<N;i++)   
    {
        for(j=0;j<N;j++)
        {
            printf("%d ",c[i][j]);
        }
        printf("\n");
    }
       
}

/*
** 矩阵相加
*/

void Plus_arry(int a[N][N],int b[N][N])
{
    int i,j;
    int c[N][N]={0};
    for(i=0;i<N;i++)
    {
        for(j=0;j<N;j++)
        {
            c[i][j]=a[i][j]+b[i][j];
        }
    }
    for(i=0;i<N;i++)
    {
        for(j=0;j<N;j++)
        {
            printf("%d ",c[i][j]);
        }
        putchar(10);
    }
           
}
int main()
{
    int a[N][N],b[N][N];
    printf("输入a矩阵:\n");
    input_arry(a);
    printf("a矩阵是:\n");
    print_arry(a);
    printf("输入b矩阵;\n");
    input_arry(b);
    printf("b矩阵是:\n");
    print_arry(b);
    printf("相乘是:\n");
    Mul_arry(a,b);
    printf("相加是:\n");
    Plus_arry(a,b);
    return 0;
}
没有必要写那么多函数的!

重要的不是结果,是求一个结果的过程,哪怕千难万难,当你有想要的结果时,你已走的很远
2012-11-20 17:03
梁朝斌
Rank: 4
等 级:业余侠客
帖 子:192
专家分:288
注 册:2012-10-21
收藏
得分:0 
很有启发,非常感谢,程序就是要不断的交流,哈哈

菜鸟也疯狂
2012-11-20 19:03
快速回复:感谢大家的帮忙,我回去思考过后还有点小错误无法理解,请再次指正
数据加载中...
 
   



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

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