lqnzby
驱动牛犊
驱动牛犊
  • 注册日期2005-03-19
  • 最后登录2005-06-01
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2097回复:2

为什么可以编译不能执行

楼主#
更多 发布于:2005-04-10 17:41
我拷了一个书上简单程序,别人可以有输出,我通过编译了,运行的时候 出错
*** error 65: access violation at C:0x1B00 : no \'execute/read\' permission
请指点一下
是设置问题,还是版本代码限制

以下是代码
#include <stdio.h>
#include <reg51.h>

float average(array,n)
 float array[];
 int n;
 {
  int i;
  float aver,sum;
  sum=array[0];
  for(i=1;i<n;i++)
    sum=sum+array;
  aver=sum/n;
  return(aver);
 }

void main(){
float pot_1[5]={99.9,88.8,77.7,66.6,0};
float pot_2[10]={11.1,22.2,33.3,44.4,55.5,99.9,88.8,77.7,66.6,0};
SCON=0x52;
TMOD=0x20;
TCON=0x69;
TH1=0x0F3;
printf(\"the average of A is %6.2f\\n\",average(pot_1,5));
printf(\"the average of B is %6.2f\\n\",average(pot_2,10));  
 }
xbzjackey
驱动小牛
驱动小牛
  • 注册日期2002-12-27
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望34点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-04-11 09:16
sum=sum+array;  有问题

应该是sum+=array
回答好的不要忘了给分哦。。。
lqnzby
驱动牛犊
驱动牛犊
  • 注册日期2005-03-19
  • 最后登录2005-06-01
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-04-12 00:56
我已经知道了,使芯片选择问题,我把AT89C51改为AT89C52 就好了
不过还是谢谢你了
游客

返回顶部