标题:一个判断对角线上数据是否为1的方法, int k = identity_matrix(array,12); ...
只看楼主
zjs0388
Rank: 1
等 级:新手上路
帖 子:11
专家分:5
注 册:2011-9-7
结帖率:100%
已结贴  问题点数:1 回复次数:3 
一个判断对角线上数据是否为1的方法, int k = identity_matrix(array,12);问题是:k = ?
#include<stdio.h>
int array[12][12];

int
identity_matrix(int const array[][10],int const counts);
int
main(void)
{
    int i;
    for(i = 0;i<12;i++)
        array[i][i] = 1;

    int k = identity_matrix(array,12);
    printf("%d\n",k);

}

int
identity_matrix(int const array[][10],int const counts)
{
    int i,j;
    for( i = 0;i<counts;i++)
    {
        for( j = 0 ;j<counts;j++)
        {
            if(i == j)
            {
                if(array[i][j] != 1)
                    return 0;
            }else
            {
                if(array[i][j] !=0)
                    return 0;
            }
        }
    }

    return 1;
}
搜索更多相关主题的帖子: include return 对角线 
2011-09-15 14:14
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
得分:1 
形参array[][10]的问题。你传入的是a[][12]的数组。另外你判断的是一个单位方阵,不光是对角线。如果只判断对角线可以更简单
程序代码:
int identity_matrix(const int *array,coust int count)
{
    int i, j;
    for(i = 0; i < count; i++)
    for(j = 0; j < count; j++)
    {
        if(i == j && array[i * count + j] != 1) return 0;
        if(i != j && array[i * count + j] != 0) return 0;
    }
    return 1;
}
   

 

重剑无锋,大巧不工
2011-09-15 14:31
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
得分:0 
方阵对角线数据全部为1  其他非对角线数据全部非0  那就返回1

如果有一个元素不符合上述要求 那么返回0  不知道你是不是这意思

                                         
===========深入<----------------->浅出============
2011-09-15 15:19
zjs0388
Rank: 1
等 级:新手上路
帖 子:11
专家分:5
注 册:2011-9-7
得分:0 
k =0
2011-09-15 18:23



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-349973-1-1.html




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

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