| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 402 人关注过本帖
标题:C++,程序为什么出现“该内存不能为 Read”,完全不能运行
只看楼主 加入收藏
BCCN3968
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2014-12-7
收藏
 问题点数:0 回复次数:2 
C++,程序为什么出现“该内存不能为 Read”,完全不能运行
#include<iostream>using namespace std;void main(){ int A[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}}; int i,j,k,l,n; for(i=0;i<4;i++) {n=A[i][0];  for(j=0;j<4;j++)   if(n>A[i][j]){    n=A[i][j];    l=j;   }   for(j=0;j<4;j++)    if(n>A[j][l]){     n=A[j][l];     k=j;   }     if(k==i) cout<<A[k][l]<<endl;    }}

就是找出数组中既是所在行的最小值,又是所在列的最小值,并打印出他们在矩阵中的位置








我自己明白了。。。。

[ 本帖最后由 BCCN3968 于 2014-12-7 19:55 编辑 ]
2014-12-07 19:48
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:0 
根据你的代码修改了一下(逻辑是否正确我不管,因为你没考虑同一行有多个最小值的情况)

程序代码:
#include <iostream>
using namespace std;

int main()
{
    const int A[4][4] = { {  1,  2,  3,  4 }
                        , {  5,  6,  7,  8 }
                        , {  9, 10, 11, 12 }
                        , { 13, 14, 15, 16 } };

    ////////////////////////////////////

    const size_t rsize = sizeof(A)/sizeof(A[0]);
    const size_t csize = sizeof(A[0])/sizeof(A[0][0]);

    for( size_t r=0; r!=rsize; ++r )
    {
        size_t c = 0;
        for( size_t i=1; i!=csize; ++i )
        {
            if( A[r][i] < A[r][c] )
                c = i;
        }

        size_t j;
        for( j=0; j!=rsize && A[j][c]>=A[r][c]; ++j );

        if( j == rsize )
            cout << "A[" << r << "][" << c << "] = " << A[r][c] << '\n';
    }
    cout << flush;

    return 0;
}

2014-12-08 09:11
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
以下是引用BCCN3968在2014-12-7 19:48:14的发言:

#include<iostream>using namespace std;void main(){ int A[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}}; int i,j,k,l,n; for(i=0;i<4;i++) {n=A[0];  for(j=0;j<4;j++)   if(n>A[j]){    n=A[j];    l=j;   }   for(j=0;j<4;j++)    if(n>A[j][l]){     n=A[j][l];     k=j;   }     if(k==i) cout<<A[k][l]<<endl;    }}

就是找出数组中既是所在行的最小值,又是所在列的最小值,并打印出他们在矩阵中的位置



麻烦注重一下代码格式   一片一片的代码  






我自己明白了。。。。

DO IT YOURSELF !
2014-12-08 14:38
快速回复:C++,程序为什么出现“该内存不能为 Read”,完全不能运行
数据加载中...
 
   



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

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