| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1804 人关注过本帖
标题:这个题目该怎么写?
只看楼主 加入收藏
北国123456
Rank: 1
等 级:新手上路
帖 子:69
专家分:0
注 册:2016-10-6
结帖率:70%
收藏
已结贴  问题点数:10 回复次数:12 
这个题目该怎么写?
图片附件: 游客没有浏览图片的权限,请 登录注册

实现对一个4×4的方阵初始化,并判断其是否为对称矩阵。
输入输出说明:
输入:
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
输出:
对称
输入:
1 2 3 4
5 6 7 8
9 8 7 6
5 4 3 2
输出:
不对称
2016-11-08 15:10
炎天
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:桃花岛
等 级:贵宾
威 望:29
帖 子:1218
专家分:4986
注 册:2016-9-15
收藏
得分:0 
给大家的布置作业么?
你可以说说你自己的想法,或者贴上你代码。

早知做人那么辛苦!  当初不应该下凡
2016-11-08 16:02
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
回复 楼主 北国123456
对称有分上下对称,左右对称以及中心对称,不知题主所说的对称是指哪一种

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-11-08 18:35
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:1 
补充一句:4*4中心对称的坐标是a[x][y]与a[3-x][3-y],点到即止。

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-11-08 19:59
lotoze
Rank: 1
等 级:新手上路
威 望:1
帖 子:13
专家分:5
注 册:2016-9-18
收藏
得分:1 
#include <stdio.h>

int main()
{
    /*输入4*4二维数组*/
    int num[4][4];
    int i, j;
    printf("请输入一个4*4的矩阵或者16个整数:\n");
    for(i=0; i<4; i++)
    {
        for(j=0; j<4; j++)
        {
            scanf("%d",&num[i][j]);
        }
    }
    printf("\n");

    /*判断是否对称算法*/
    for(i=0; i<4; i++)
    {
        for(j=0; j<4; j++)
        {

            if(num[i][j]==num[i+1][j] && num[i][j]==num[i][j+1] && num[i][j]==num[i+2][j+3] && num[i][j]==num[i+3][i+2] && num[i][j]==num[i+1][j+1] && num[i][j]==num[i+2][j+2] && num[i][j]==num[i+3][j+3] && num[i][j]==num[i+1][j+2] && num[i][j]==num[i+2][j+1])                                            
            {                                            
                                                                                
                for(i=0; i<4; i++)
                {
                    for(j=0; j<4; j++)
                    {
                        printf("%d",num[i][j]);
                    
                    }
                    printf("\n");
                }
                printf("\n");
                printf("这个矩阵对称!\n");
   
            }
            else
            {
        
                for(i=0; i<4; i++)
                {
                    for(j=0; j<4; j++)
                    {
                        printf("%d",num[i][j]);
        
                    }
                    printf("\n");
                }
            printf("\n");
            printf("这个矩阵不对称!");
            }
        }
    }
    printf("\n");
        

    return 0;
}
2016-11-08 21:06
北国123456
Rank: 1
等 级:新手上路
帖 子:69
专家分:0
注 册:2016-10-6
收藏
得分:0 
回复 2楼 炎天
不好意思  因为我的程序写得太离谱所以...... 我的程序是这样的
#include<stdio.h>
int main()
{
    int a[4][4],i,j,m,n;
    for(i=0;i<4;i++)
        for(j=0;j<4;j++)
            scanf("%d",&a[i][j]);
    for(i=0;i<2;i++)
         for(j=0;j<4;j++)
           for(m=i+2;m<4;m++)
               for(j=0;j<4;j++)
    if(a[i][j]!=a[m][j])
    printf("不对称");
    else
        printf("对称");
    return 0;
}
  结果会输出很多个‘对称’或者 ‘不对称’
2016-11-08 23:05
北国123456
Rank: 1
等 级:新手上路
帖 子:69
专家分:0
注 册:2016-10-6
收藏
得分:0 
回复 4楼 九转星河
需要中心对称吗?难道不是普通的对称吗?
2016-11-08 23:06
北国123456
Rank: 1
等 级:新手上路
帖 子:69
专家分:0
注 册:2016-10-6
收藏
得分:0 
回复 3楼 九转星河
我认为是左右对称   我也不太清楚
2016-11-08 23:07
炎天
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:桃花岛
等 级:贵宾
威 望:29
帖 子:1218
专家分:4986
注 册:2016-9-15
收藏
得分:3 
回复 6楼 北国123456
下面是错误解答,
#include<stdio.h>
 int main()
 {
     int a[4][4],i,j,m,n;
     
     for(i = 0; i < 4; i++)
         for(j = 0; j < 4; j++)
             scanf("%d",&a[i][j]);
     
     for(i = 0;i < 2; i++)
        for(j = 0; j < 4; j++)
           for(m=i+2; m < 4; m++)
              for(j = 0; j < 4; j++)
                 if(a[i][j]!=a[m][j])               //只要有一个不符合就退出整个循环,利用goto
                 {
                     goto to;             // printf("不对称");
                 }                     
                 else
                 {
                     goto on;             // printf("对称");
                 }                        
  
    on: printf("对称");  
    goto tt;
    to: printf("不对称");
    tt: return 0;
 }

[此贴子已经被作者于2016-11-9 10:21编辑过]


早知做人那么辛苦!  当初不应该下凡
2016-11-09 02:16
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:1 
回复 9楼 炎天
打破多层循环直接用return 0;比较好^

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-11-09 03:51
快速回复:这个题目该怎么写?
数据加载中...
 
   



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

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