| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2068 人关注过本帖
标题:求助!程序运行时总显示“指定内存不能为read” 希望好心人来帮帮我!!谢谢 ...
只看楼主 加入收藏
shendage
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-5-11
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:4 
求助!程序运行时总显示“指定内存不能为read” 希望好心人来帮帮我!!谢谢啊!!!
#include<stdio.h>
void main()
{
    int judge1(int a,int b,int c,int d);
    int judge2(int a,int b,int c,int d);
    int judge3(int a,int b,int c,int d);
    int cmp(int x,int y);
    int abx(int x);
    int event[9][4],x1,x2,y1,y2,i,j,m,n,a,b,c,d,temp,temp1,temp2,sum,min=999999;
    printf("输入每个区发生的应急事件次数\n");
    for(j=0;j<5;j++)
        for(i=0;i<10;i++)
            scanf("%d",&event[i][j]);
        for(x1=0;x1<=4;x1++)
            for(y1=0;y1<=4;y1++)
                for(x2=5;x2<=4;x2++)
                    for(y2;y2<=4;y2++)
                    {
                        sum=0;
                        for(m=0;m<=9;m++)
                            for(n=0;n<=4;n++)
                            {
                                if(judge1(x1,y1,x2,y2))
                                    break;
                                if(judge2(x1,y2,m,n))
                                    temp1=15*(abx(x1-m)+2)+20*(abx(y1-n)+2);
                                else
                                    temp1=15*abx(x1-m)+20*abx(y1-n);
                                if(judge3(x2,y2,m,n))
                                    temp2=15*(abx(x2-m)+2)+20*(abx(y2-n)+2);
                                else
                                    temp2=15*abx(x2-m)+20*abx(y2-n);
                                temp=cmp(temp1,temp2);
                                sum=sum+event[m][n]*temp;
                            }
                            if(sum<min)
                            {
                                min=sum;
                                a=x1;
                                b=y1;
                                c=x2;
                                d=y2;
                            }
                    }
                    printf("最小的总响应时间为%d\n",min);
                    printf("选取的应急设施的位置为X(%d,%d)与Y(%d,%d)\n",a,b,c,d);
}

int judge1(int a,int b,int c,int d)
{
    if(a==2&&b==1)
        return(1);
    else if(a==3&&b==1)
        return(1);
    else if(a==3&&b==2)
        return(1);
    else if(c==7&&d==2)
        return(1);
    else if(c==8&&d==2)
        return(1);
    else
        return(0);
}
int judge2(int x,int y,int m,int n)
{
    if(x<2&&m>3&&y>0&&y<3&&n>0&&n<3)
        return(1);
    else if(m<2&&x>3&&y>0&&y<3&&n>0&&n<3)
        return(1);
    else if(y==0&&n>=2&&x>1&&x<4&&m>1&&m<4)
        return(1);
    else if(n==0&&y>=2&&x>1&&x<4&&m>1&&m<4)
        return(1);
    else
        return(0);
}
int judge3(int x,int y,int m,int n)
{
    if(x<7&&m==9&&y==2&&n==2)
        return(1);
    else if(x==9&&m<7&&y==2&&n==2)
        return(1);
    else if(x>6&&x<9&&m>6&&m<9&&y<2&&n>2)
        return(1);
    else if(x>6&&x<9&&m>6&&m<9&&n<2&&y>2)
        return(1);
    else
        return(0);
}
int cmp(int x,int y)
{
    if(x<y)
        return(x);
    else
        return(y);
}
int abx(int x)
{
    if(x<0)
        return(-x);
    else
        return(x);
}
搜索更多相关主题的帖子: 内存 read 运行 
2010-05-11 18:29
shendage
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-5-11
收藏
得分:0 
注是 “0x00000001”指令引用的“0x00000001”内存。该内存不能用“read”
2010-05-11 18:39
jcslt
Rank: 8Rank: 8
来 自:90-xx.com
等 级:蝙蝠侠
帖 子:251
专家分:975
注 册:2009-10-10
收藏
得分:0 
没问题,VS2010和gcc下正常!你什么编译器的,是不是系统问题!可以先调试一下。。

www.
2010-05-11 21:57
liubangchuan
该用户已被删除
收藏
得分:20 
提示: 作者被禁止或删除 内容自动屏蔽
2010-05-11 23:57
shendage
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-5-11
收藏
得分:0 
回复 4楼 liubangchuan
恩,谢谢,最后自己找出了大部分错误...
2010-05-16 16:19
快速回复:求助!程序运行时总显示“指定内存不能为read” 希望好心人来帮帮我! ...
数据加载中...
 
   



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

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