| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1366 人关注过本帖
标题:自己编的挺烦的,想问有没有更简单的方法
只看楼主 加入收藏
夏木兮
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2015-12-3
收藏
 问题点数:0 回复次数:11 
自己编的挺烦的,想问有没有更简单的方法
题目:找出N×N矩阵中每列元素中的最大值
有N×N矩阵,以主对角线为对称线,对称元素相加并将结果存放在左下三角元素中,右上三角元素置为0。例如,若N=3,有下列矩阵:
1 2 3
4 5 6
7 8 9
计算结果为
1 0 0
6 5 0
10 14 9  
#include <stdio.h>
int main()
{
    int a[3][3];
    int i,j;
    for (i=0;i<3;i++)
        for (j=0;j<3;j++)
        {
            scanf("%d",&a[i][j]);
        }
    for (i=0;i<3;i++)
        for (j=0;j<3;j++)
        {
            if (i>j)
                a[i][j]=a[i][j]+a[j][i];
        }
    for (i=0;i<3;i++)
        for (j=0;j<3;j++)
        {
            if (i<j)
                a[i][j]=0;
        }
    for (i=0;i<3;i++)
    {
        for (j=0;j<3;j++)
        {
            printf("%d\t",a[i][j]);
        }
        printf("\n");
    }
}
2016-02-01 09:22
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
这和最大值有神马关系

DO IT YOURSELF !
2016-02-01 09:42
夏木兮
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2015-12-3
收藏
得分:0 
回复 2楼 wp231957
老师给的题目是这样的
2016-02-01 09:58
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
看看这个是不是比你的简单一些:我这里固定了题目中的N 否则再加一个输入N*N的矩阵 也不是很难
程序代码:
#include <stdio.h> 

int main() 
{ 
    int b[6][6]={{1,2,3,4,5,6},{7,8,9,10,11,12},{13,14,15,16,17,18},{19,20,21,22,23,24},{25,26,27,28,29,30},{31,32,33,34,35,36}};
    int i,j;
    printf("原始矩阵输出:\n");
    for(i=0;i<6;i++)
    {
        for(j=0;j<6;j++) printf("%4d",b[i][j]);
        printf("\n");
    }
    for(i=0;i<6;i++)
    {
        for(j=0;j<6;j++)
        {
            if(i>j) 
            {
                b[i][j]+=b[j][i];
                b[j][i]=0;
            }
        }
    }
    printf("变形后矩阵输出:\n");
    for(i=0;i<6;i++)
    {
        for(j=0;j<6;j++) printf("%4d",b[i][j]);
        printf("\n");
    }
    return 0;
}



[此贴子已经被作者于2016-2-1 09:59编辑过]


DO IT YOURSELF !
2016-02-01 09:58
夏木兮
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2015-12-3
收藏
得分:0 
回复 2楼 wp231957
请问有更简单的方法吗?
2016-02-01 10:00
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
回复 5楼 夏木兮
去除输入模块 输出模块 中间计算部分仅仅是2重循环加一重判断  还想咋简单呢  

DO IT YOURSELF !
2016-02-01 10:02
夏木兮
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2015-12-3
收藏
得分:0 
回复 4楼 wp231957
嗯,是要简单一些,谢谢!还有想请问一下什么时候一定要用strcpy/strcmp,什么时候可以直接进行比较?
2016-02-01 10:03
夏木兮
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2015-12-3
收藏
得分:0 
回复 6楼 wp231957
嗯,刚刚没看到你的方法
2016-02-01 10:05
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
以下是引用夏木兮在2016-2-1 10:03:09的发言:

嗯,是要简单一些,谢谢!还有想请问一下什么时候一定要用strcpy/strcmp,什么时候可以直接进行比较?


用到时自然就用到了
strcpy是复制字符串  把字符串A 复制到B处 这是耗费内存的  比如A 占 100字节 那么复制到B 需要B也申请到100字节的空间才可以的
那么strcpy复制完毕后 内存中就有2个一模一样的字符串了

而strcmp就是按照ascii表序比较2个字符串的大小  

这2个函数都是针对字符串的  而你所说的直接比较 那是针对单个字符的  因为c语言中 char类型是一种短整型数据 所以可以直接比较

还有,类似某个函数不明白咋用 可以问度娘 可以查阅msdn  函数主要看接口 就是输入参数都是神马 输出神马  把这2个神马搞明白就没啥了

DO IT YOURSELF !
2016-02-01 10:09
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:0 
看这个是不是简单些。
程序代码:
#include <stdio.h>
int main()
{
    int i,j,a[3][3];
    for(i=0;i<3;i++)
        for(j=0;j<3;j++)
        {
            scanf("%d",&a[i][j]);
            if(j<i)
            {
                a[i][j]+=a[j][i];
                a[j][i]=0;
            }
        }
    for(i=0;i<3;printf("\n"),i++)
        for(j=0;j<3;j++)printf("%2d ",a[i][j]);
    return 0;
}

能编个毛线衣吗?
2016-02-01 11:19
快速回复:自己编的挺烦的,想问有没有更简单的方法
数据加载中...
 
   



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

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