| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 421 人关注过本帖
标题:为什么我的运行结果是错的?
只看楼主 加入收藏
穿袜子的傻喵
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2015-4-21
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:6 
为什么我的运行结果是错的?
程序代码:
#include<stdio.h>
main()
{
    int i,j,flag,s,sum=0;
    int a[5][5]={{17,24,1,8,15},{23,5,7,14,16},{4,6,13,20,22},{10,12,19,21,3},{11,18,25,2,9}};
        printf("矩阵:\n");
    for(i=0;i<5;i++)
    {
        for(j=0;j<5;j++)
        {    
            printf("%4d",a[i][j]);
        }
            printf("\n");
    }
        for(j=0;j<5;j++)
        {
            sum=sum+a[0][j];
            s=sum;
        }
        for(i=0;i<5;i++)
        {
            sum=0;
            for(j=0;j<5;j++)
            {
                sum=sum+a[i][j];
            }
            if(sum!=s)
            {
                flag=0;
                break;
            }
        }
        if(flag==1)
            {
                for(j=0;j<5;j++)
                {
                    sum=0;
                    for(i=0;i<5;i++)
                    {
                        sum=sum+a[i][j];
                    }
                    if(sum!=s)
                    {
                        flag=0;
                        break;
                    }
                }
        }
                    if(flag==1)
                    {
                        sum=0;
                        for(i=0;i<5;i++)
                        {
                            sum=sum+a[i][i];
                        }
                        if(sum!=s)
                        {
                            flag=0;
                        }
                    }
                        if(flag==1)
                        {
                            sum=0;
                            for(i=0;i<5;i++)
                            {
                                for(j=0;j<5;j++)
                                {
                                  if((i+j)==4)
                                  {
                                    sum=sum+a[i][j];
                                  }
                                }
                            }
                                  if(sum!=s)
                                  {
                                    flag=0;
                                  }
                        }
                                 if(flag==1)
                                    printf("是魔方矩阵\n");
                                else
                                    printf("不是魔方矩阵\n");
            return 0;
}

麻烦各位大神帮我看看程序哪错了?正确结果是魔方矩阵,但我的结果是不是魔方矩阵,找不到出错点~~~
2015-05-01 23:59
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:10 
flag未初始化,
int i,j,flag,s,sum=0;
    int a[5][5]={{17,24,1,8,15},{23,5,7,14,16},{4,6,13,20,22},{10,12,19,21,3},{11,18,25,2,9}};
        printf("矩阵:\n");
这里可以先来个flag=1;再执行下面的语句,当然最好在声明处就赋值。

剑栈风樯各苦辛,别时冰雪到时春
2015-05-02 08:26
穿袜子的傻喵
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2015-4-21
收藏
得分:0 
flag=1和flag=0有什么区别呢?
2015-05-02 09:29
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:0 
回复 3楼 穿袜子的傻喵
你是考我吗?flag!=1直接转到末尾说明flag=1你定义为幻阵成立条件,否则。。。
你这是忘了自己写了什么

剑栈风樯各苦辛,别时冰雪到时春
2015-05-02 10:08
穿袜子的傻喵
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2015-4-21
收藏
得分:0 
回复 4楼 林月儿
为什么flag要初始化?
2015-05-02 14:10
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:0 
回复 5楼 穿袜子的傻喵
you have to compare the variable named flag with 1.
if result returned is true,then task is over.
here comes the question.
the variable named flag may be zero or other values
in other words,where you can make variable named flag equals 1?

剑栈风樯各苦辛,别时冰雪到时春
2015-05-02 14:40
穿袜子的傻喵
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2015-4-21
收藏
得分:0 
回复 6楼 林月儿
I know.Thanks.
2015-05-02 14:49
快速回复:为什么我的运行结果是错的?
数据加载中...
 
   



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

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