| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 745 人关注过本帖
标题:输入完了后说已停止运行,可编译事却没出错
只看楼主 加入收藏
令狐少侠56
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:320
专家分:175
注 册:2014-4-10
结帖率:58.18%
收藏
已结贴  问题点数:40 回复次数:11 
输入完了后说已停止运行,可编译事却没出错
#include "stdio.h"
void input(int m,int n,int a[10][10])//输入矩阵
    {
        int i,j;
        for(i=0;i<m;i++)
            for(j=0;j<n;j++)
                scanf("%d",&a[i][j]);
    }

void output(int m,int n,int a[10][10]) //输出矩阵
{
    int i,j;
    for(i=0;i<m;i++)
    {
        for(j=0;j<n;j++)
            {
                printf("%5d",a[i][j]);
            }
            printf("\n");
    }
}

void chen(int a[100][100],int b[100][100],int c[100][100]) //矩阵相乘
    {
        int i,j,k;        
      for(i=0;i<3;i++)
        for(j=0;j<3;j++)
            {
                c[i][j]=0;
                for(k=0;k<4;k++)
                {c[i][j]=c[i][j]+a[i][k]*b[k][j];}
            }        
    }


void main()
{
    int a[3][4],b[4][3];
    int c[3][3];

    printf("请输入3*4矩阵\n");
    input(3,4,a);
    printf("输出3*4矩阵\n");
    output(3,4,a);

    printf("请输入4*3矩阵\n");
    input(4,3,b);

    printf("输出4*3矩阵\n");
    output(4,3,b);

    chen(a,b,c);        //计算两矩阵的乘积
    printf("输出3*4与4*3矩阵的乘积\n");
    output(3,3,c);

    printf("全部结束\n");

}
搜索更多相关主题的帖子: include 
2015-03-23 23:49
wssy213
Rank: 12Rank: 12Rank: 12
来 自:湖南
等 级:贵宾
威 望:10
帖 子:967
专家分:3703
注 册:2014-6-6
收藏
得分:7 
参数传递问题

坚持----------------------------------唯一的道路
shit ! ! !
2015-03-23 23:57
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:7 
写代码的步骤

1、把代码敲上去
2、代码编译成功
3、代码链接成功
4、能够运行
5、能够得到自己预期的目标

每一步失败 都需要反复调试

DO IT YOURSELF !
2015-03-24 09:56
令狐少侠56
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:320
专家分:175
注 册:2014-4-10
收藏
得分:0 
回复 2楼 wssy213
我也这样觉得,可是就是找不到哪错了
2015-03-24 09:57
令狐少侠56
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:320
专家分:175
注 册:2014-4-10
收藏
得分:0 
回复 3楼 wp231957
我把a[3][4],b[4][3],c[3][3]全部定义为a[10][10],b[10][10],c[10][10],结果就对了,可我输入时确实是a定义为3乘4的矩阵啊,其他也是这样,怎么会在输入矩阵时就出了错
2015-03-24 10:48
令狐少侠56
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:320
专家分:175
注 册:2014-4-10
收藏
得分:0 
回复 2楼 wssy213
现在看起来不是函数参数传递错误
2015-03-24 10:49
执笔画江山
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:3
帖 子:265
专家分:1010
注 册:2015-1-13
收藏
得分:7 
参数传递问题。你定义的跟你传入的不一样,并且类型不匹配。
你的input和output函数的第三个参数传递时,将指针赋给了整数。这是个隐患。

授人以鱼,不如授人以渔
2015-03-24 11:06
令狐少侠56
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:320
专家分:175
注 册:2014-4-10
收藏
得分:0 
回复 7楼 执笔画江山
那我要怎么办?我是把output第三个参数看成定义矩阵,然后将数组传递给它,现在看来我对数组做实参传递根本没理解啊。。。。
2015-03-24 11:24
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
数组是一个“数据块”  它是没办法进行传参的   那么传递的只能是地址  也就是所谓的指针

要知道  还原到汇编层面是没有指针的概念的  只有地址的概念

DO IT YOURSELF !
2015-03-24 13:04
韶志
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:斗气大陆
等 级:贵宾
威 望:44
帖 子:2223
专家分:13592
注 册:2013-3-22
收藏
得分:7 
C函数参数传值很多人都比较模糊

自己要清楚  传的到底是变量的值还是地址,特别是数组作参数时

三十年河东,三十年河西,莫欺少年穷!
2015-03-24 17:27
快速回复:输入完了后说已停止运行,可编译事却没出错
数据加载中...
 
   



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

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