2 qq 33486292 qq_33486292 于 2016.04.02 18:41 提问

c++比较简单的问题,求解!

图片说明
图片说明
图片说明
图片说明

5个回答

CSDNXIAOD
CSDNXIAOD   2016.04.02 18:52

比较简单 就到这了
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

qq423399099
qq423399099   Ds   Rxr 2016.04.02 19:00

次对角线和有问题
minor_sum+=a[m-1][i]应该改为minor_sum+=a[m-i-1][i]

duke_xl
duke_xl   2016.04.02 20:22

你的max=min=a[0][0]比较好啊,矩阵也可以为负啊,minor_sum+=a[i][m-i-1]

qq_20603903
qq_20603903   2016.04.02 21:07

楼上把bug都说完了。你可以在给max和min赋值的时候顺便记录下其坐标。这样就不需要第二次遍历了。

stadyhungry
stadyhungry   2016.04.02 22:32
 int _tmain(int argc, _TCHAR* argv[])
{
    int m = 5, n = 5;
    int a[5][5] = {0};

    int i = 0, j = 0;
    for (i = 0; i < m; i++)
    {
        for (j = 0; j < n; j++)
        {
            cin >> a[i][j];
        }
    }

    for (i = 0; i < m; i++)
    {
        for (j = 0; j < n; j++)
        {
            cout << a[i][j] << " ";
        }
        cout <<endl;
    }

    int nMin = a[0][0], nMax = a[0][0];
    int nMain_Sum = 0, nMinor_Sum = 0;
    int nRowMin = 0, nColMin = 0;
    int nRowMax = 0, nColMax = 0;
    for (i = 0; i < m; i++)
    {
        for (j = 0; j < n; j++)
        {
            int nTem = a[i][j];
            if (nMin > nTem)
            {
                nMin = nTem;
                nRowMin = i;
                nColMin = j;
            }

            if (nMax < nTem)
            {
                nMax = nTem;
                nRowMax = i;
                nColMax = j;
            }

        }

        nMain_Sum += a[i][i];
        nMinor_Sum += a[m-i-1][i];
    }

    cout<< "最大值为:" << nMax << "在第" << nRowMax << "行" << "第" << nColMax << "列" << endl;
    cout<< "最小值为:" << nMin << "在第" << nRowMin << "行" << "第" << nColMin << "列" << endl;
    cout<< "主对角线之和为:" << nMain_Sum <<endl;
    cout<< "次对角线之和为:" << nMinor_Sum <<endl;
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
ACM——01——1001: 【入门】A+B Problem 熟悉一下Online Judge的环境
题目描述 给出两个数a,b,输出a+b 请不要笑。用来适应环境的题目,自然比较简单些。 计算2个整数的和。这两个整数都在1到65536之间。 学习C++的学生注意: 我们的系统采用的linux下的C++编译器 请将C++ 的头文件由你们在windows下的 #include 改为: #include using namespace std; 并且要求main() 函数的返
迷宫问题的C语言求解
在工作了一年以后,又拿起了久违的数据结构教材,将其中的迷宫问题重新求解了一遍。其实迷宫问题的算法早已经被介绍的太多了,所以就直接上源码了。在关键的地方加了一点自己的理解。(英文版)
运用栈求解迷宫问题C/C++
用栈解决基本的迷宫问题C/C++ 1、问题描述:设置迷宫为m*n的二维数组,起点坐标为(1,1),中点坐标为(m,n),0为通路,1为死路,为防止数组越界将四周设置边界1,即数组变为(m+2)*(n+2)数组,迷宫如下....      迷宫 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 1 1 1
关于迷宫求解及其最优解的问题
关于迷宫问题,求解它的最优解的问题可以使用栈的概念来实现。简单的迷宫如下图 其中0表示可以走,1表示不能走,显然可见,若是以(3,1)点为入口,则有两个出口分别是(10,3)和(10, 8)。而两个出口的路径长度是不同的。这就产生了迷宫最优解的问题。 下面附上代码,我们寻找下一个位置是否可走的顺序是顺时针顺序,即上右下左。#pragma once #include<iostream> usi
数据结构(C语言版)迷宫求解问题
初学数据结构和C语言,尝试实现了迷宫求解问题。代码组织比较差,改进的地方也有很多,博君一乐而已。希望能够帮助到别人
算法学习笔记(八) 动态规划的一般求解方法
动态规划(Dynamic programming,DP),是研究一类最优化问题的方法,通过把原问题分解为相对简单的子问题的方式求解复杂问题。动态规划处理的也就是是多阶段决策最优化问题,这一类问题可将过程分成若干个互相联系的阶段,在每一阶段都作出决策,从而使整个过程达到最好的结果。因此各个阶段决策的选取不能任意确定,它依赖于当前面临的状态,又影响以后的发展。当各个阶段决策确定后,就组成一个决策序列,从而也就确定了整个过程的一条活动路线。
数据结构(C语言版)”栈与队列“章节迷宫求解问题的思路与实现
迷宫求解问题来源自”数据结构(C语言版)“一书第50页的例题。该例题要求在不使用递归(因为暂时还没讲到),只能通过使用诸如入栈出栈的方式获取一条可以走出迷宫的路径。     在看完文字提示后,我就没有看后面的伪代码实现了(对于我来说,本书的所有伪代码的组织就像一团乱麻,反而更加没有头绪)。在理解文字说明的基础上我试图通过独立思考解决,以下就是我的思考过程。 1.迷宫求解问题的规则有哪些?
C语言 迷宫问题求解(顺序栈应用示例)
[cpp] view plaincopy //顺序栈的应用:迷宫   //作者:nuaazdh   //时间:2011年12月7日   #include    #include       #define OK      1   #define ERROR   0   #define TRUE    1   #define FALSE   0  
【数据结构】递归求解迷宫问题
数据结构 递归求解迷宫问题 参考代码如下: /* 名称:递归求解迷宫问题 编译环境:VC++ 6.0 日期: 2014年4月1日 */ #include #include // 迷宫坐标位置类型 struct PosType { int x; // 行值 int y; // 列值 }; #define MAXLENGTH 25 // 设迷宫的最大行列为25 typedef
深度优先搜索解决迷宫问题(c的实现)
经典栈队列以及深度优先算法的代码例子,便于学习和参考。