| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 311 人关注过本帖
标题:跟同学探讨了一个晚上,不知道怎么修改,希望能快速解决
只看楼主 加入收藏
梁朝斌
Rank: 4
等 级:业余侠客
帖 子:192
专家分:288
注 册:2012-10-21
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:5 
跟同学探讨了一个晚上,不知道怎么修改,希望能快速解决
#include<stdio.h>
#define maxsize 100
#define n 4

void main()
{
    int a,b,c;
    value1(a);
    value2(b);
    mult(a,b,c);
    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[][],int b[][],int c[][])/*矩阵求积操作*/
{
    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++)
            
                s+=value1(a,i,k)*value2(b,k,j);
                c[i][j]=s;
            
        }
    }
}
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");
        }
   
    }
}
矩阵编译有很多错误,就是希望知道错在哪了
搜索更多相关主题的帖子: please include 
2012-11-19 23:42
cyhdahua
Rank: 7Rank: 7Rank: 7
来 自:山东
等 级:黑侠
威 望:2
帖 子:221
专家分:643
注 册:2012-6-15
收藏
得分:7 
程序代码:
#include<stdio.h>
#define maxsize 100
#define n 4
void value1(int **);
void value2(int **);
void mult(int**,int**,int**);
void disp(int**);
void main()
{
    int** a,**b,**c;
    value1(a);
    value2(b);
    mult(a,b,c);
    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,int** b,int** c)/*矩阵求积操作*/
{
    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++)
           

 //               s+=value1(a,i,k)*value2(b,k,j);
                c[i][j]=s;
           
        }
    }
}
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");
        }
   
    }
}
注释的是逻辑不理解!!就能帮到这了,祝你好运。
睡觉。。

[ 本帖最后由 cyhdahua 于 2012-11-19 23:58 编辑 ]

WE GO
2012-11-19 23:56
cyhdahua
Rank: 7Rank: 7Rank: 7
来 自:山东
等 级:黑侠
威 望:2
帖 子:221
专家分:643
注 册:2012-6-15
收藏
得分:0 
楼主也早睡

[ 本帖最后由 cyhdahua 于 2012-11-19 23:58 编辑 ]

WE GO
2012-11-19 23:57
zhu224039
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:862
专家分:792
注 册:2012-7-29
收藏
得分:7 
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]);   ------------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]);
        }
    }
}
这两个函数功能是一样的  楼主自己看

[ 本帖最后由 zhu224039 于 2012-11-20 08:56 编辑 ]

我要成为嘿嘿的黑客,替天行道
2012-11-20 08:47
zhu224039
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:862
专家分:792
注 册:2012-7-29
收藏
得分:0 
void mult(int a[][],int b[][],int c[][])/*矩阵求积操作*/
{
    int i,j,s,k;
    for(i=0;i<n;i++)   ---------------》这里面的n  是从那个角落来的呢
    {
        for(j=0;j<n;j++)              ---------------n?
        {
            s=0;
            for(k=0;k<n;k++)                 ------n?
            
                s+=value1(a,i,k)*value2(b,k,j);        -----》n?这个地方 楼主要干什么呢   函数返回值是void  你这相乘?函数的参数 也有问题呀
                                                              这个乘积运算 还请楼主自己模拟下过程 用计算机语言表示把
           c[i][j]=s;                             ---------》这个更是不知道是怎么运算来的结果,楼主10个晚上的讨论估计也不行  去读读别人写的代码把
            
        }
    }
}


[ 本帖最后由 zhu224039 于 2012-11-20 08:57 编辑 ]

我要成为嘿嘿的黑客,替天行道
2012-11-20 08:51
a635958000
Rank: 4
等 级:业余侠客
帖 子:55
专家分:253
注 册:2012-10-26
收藏
得分:7 
回复 楼主 梁朝斌
#include<stdio.h>
#define maxsize 100
#define n 4

void main()
{
    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 disp(int c[n][n]);/*矩阵输出*/
    int a[n][n],b[n][n],c[n][n];
    value1(a);
    value2(b);
    mult(a,b,c);
    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++)
        {
            
            scanf("%d",&a[i][k]);
            //printf("a[%d][%d]=%d\n",i,k,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++)
        {
           
            scanf("%d",&b[k][j]);
            //printf("b[%d][%d]=%d\n",k,j,b[k][j]);
        }
    }
}
void mult(int a[][n],int b[][n],int c[][n])/*矩阵求积操作*/
{
    int i,j,s,k;
    for(k=0;k<n;k++)
    {
        for(i=0;i<n;i++)
        {
         s=0;
        for(j=0;j<n;j++)
         s+=a[k][j]*b[j][i];   
        c[k][i]=s;
        }
    }
}
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");
        }
   
    }
}
给你改了改,你看看
2012-11-20 13:05
快速回复:跟同学探讨了一个晚上,不知道怎么修改,希望能快速解决
数据加载中...
 
   



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

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