| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 444 人关注过本帖
标题:这个程序为什么运行不了?求各位大神指点。
只看楼主 加入收藏
琼羽
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2015-3-24
结帖率:80%
收藏
已结贴  问题点数:20 回复次数:5 
这个程序为什么运行不了?求各位大神指点。
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main()
{   
    void com_mat(int mat[3][3], int (*A)[3]);
    int T_value_mat(int det[3][3]);
    int mat[3][3]={{1,2,1},{2,1,2},{2,1,1}};
    int (*A)[3];
    int i,j,val_mat;
    printf("输入一个3*3数组:\n");
    for(i=0;i<3;i++)
    {
        for(j=0;j<3;j++)
        {
            printf("%3d",mat[i][j]);
        }
        printf("\n");
    }
    val_mat=T_value_mat(mat);
    printf("%d\n",val_mat);
    if(val_mat!=0)
    {
        printf("该矩阵的逆矩阵为:\n");
        for(i=0;i<3;i++)
        {   
            for(j=0;j<3;j++)
            printf("%5d",*(*(A+i)+j)/val_mat);
            printf("\n");
        }
    }
    return 0;
}   




//求矩阵的伴随矩阵
void com_mat(int mat[3][3], int (*A)[3])
{
    int temp[4];
    int i,j,k,q,t;
    for(i=0;i<3;i++)
    {   
        for(j=0;j<3;j++)
        {   
            t=0;
            for(k=0;k<3;k++)
            {   
                if(k!=i)
                {   
                    for(q=0;q<3;q++)
                    {
                        if(q!=j)
                        {
                            temp[t]=mat[k][q];
                            t++;
                        }
                    }
                }   
            }
            
            A[i][j]=(int)pow(-1,i+j)*(temp[0]*temp[3]-temp[1]*temp[2]);
        }
    }
    printf("该矩阵的伴随矩阵为:\n");
    for(i=0;i<3;i++)
    {   
        for(j=0;j<3;j++)
            printf("%5d",*(*(A+i)+j));
        printf("\n");
    }
}


//求矩阵的值
   
int T_value_mat(int det[3][3])
{
    int temp[4];        
    int i,j,k,q,t,sum=0;
    for(i=0,j=0;i<3;i++)
    {   
        t=0;
        for(k=0;k<3;k++)
        {   
            if(k!=i)
            {   
                for(q=0;q<3;q++)
                {
                    if(q!=j)
                    {
                        temp[t]=det[k][q];
                        t++;
                    }
                }
            }
        
        }
    sum+=det[i][j]*(int)pow(-1,i+j)*(temp[0]*temp[3]-temp[1]*temp[2]);   
    }
    printf("该矩阵的值为:\n");
    return (sum);
}
搜索更多相关主题的帖子: include 
2015-03-26 13:45
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2790
专家分:14619
注 册:2014-10-16
收藏
得分:7 
哪个部分不行?

一片落叶掉进了回忆的流年。
2015-03-26 15:05
琼羽
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2015-3-24
收藏
得分:0 
回复 楼主 琼羽
运行到一半就出现一个窗口提示出现问题导致程序停止正常工作。
2015-03-26 17:28
琼羽
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2015-3-24
收藏
得分:0 
应该是函数void com_mat()中有错吧
2015-03-26 17:32
jklqwe111
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:35
帖 子:336
专家分:1135
注 册:2014-4-13
收藏
得分:7 
void com_mat(int mat[3][3], int (*A)[3])
{
    int temp[4];
    int i,j,k,q,t;
    for(i=0;i<3;i++)
    {   
        for(j=0;j<3;j++)
        {   
            t=0;
            for(k=0;k<3;k++)
            {   
                if(k!=i)
                {   
                    for(q=0;q<3;q++)
                    {
                        if(q!=j)
                        {
                             printf("t=  %d\n",t);//////////////看是否t>3
                            temp[t]=mat[k][q];
                            t++;
                        }
                    }
                }   
            }
            
            A[i][j]=(int)pow(-1,i+j)*(temp[0]*temp[3]-temp[1]*temp[2]);
        }
    }
    printf("该矩阵的伴随矩阵为:\n");
    for(i=0;i<3;i++)
    {   
        for(j=0;j<3;j++)
            printf("%5d",*(*(A+i)+j));
        printf("\n");
    }
}
t应该没有问题
好像A是一个指针,没有分配空间 。
这个函数没有被调用。

[ 本帖最后由 jklqwe111 于 2015-3-26 19:17 编辑 ]
2015-03-26 18:38
jklqwe111
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:35
帖 子:336
专家分:1135
注 册:2014-4-13
收藏
得分:0 
printf("%5d",*(*(A+i)+j)/val_mat);
这句应该有问题,另外,com_mat()声明定义都有,好像没有调用
2015-03-26 19:11
快速回复:这个程序为什么运行不了?求各位大神指点。
数据加载中...
 
   



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

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