注册 登录
查看: 258|回复: 4

【KL26】除法错误

[复制链接]
发表于 2014-12-2 21:08:37 | 显示全部楼层 |阅读模式
同一段代码我放在其他编译器出来的结果是正确的,然而在KL26运算时是错的,是我的浮点运算没设置吗?代码的形参是一个20个数据的数组。。。求指点一下?
  1. uint8 Bubble(uint8* shuzu)     
  2. {
  3.   uint8 i,j,t,max=0,min=0,ave=0;
  4.         uint8* shuzu1;
  5.   uint16 sum=0;
  6.         shuzu1=shuzu;
  7.   for(j=0;j<20;j++)
  8.   {      
  9.     for(i=0;i<19-j;i++)
  10.     {
  11.    
  12.       if(shuzu1[i]>shuzu1[i+1])
  13.       {
  14.         t=shuzu1[i];
  15.         shuzu1[i]=shuzu1[i+1];
  16.         shuzu1[i+1]=t;
  17.       }
  18.     }
  19.   }
  20.         max=shuzu1[19];
  21.         min=shuzu1[0];
  22.         for(i=0;i<20;i++)
  23.         {
  24.           sum+=shuzu1[i];
  25.         }
  26.         sum-=(max+min);
  27.         ave=(float)(sum/18);
  28.   return ave;

  29. }


回复

使用道具 举报

发表于 2014-12-2 21:12:41 | 显示全部楼层
单步调试看看运行到哪里异常。是否有数组越界的问题。
来自PC客户端 来自PC客户端
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-12-2 21:24:36 | 显示全部楼层
数组没有越界,只是uint8的ave为什么除法完结果是这个?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2014-12-2 23:34:08 | 显示全部楼层
黑子 发表于 2014-12-2 21:24
数组没有越界,只是uint8的ave为什么除法完结果是这个?

没错啊,就是这个,编译器计算没错的。
回复 支持 反对

使用道具 举报

发表于 2014-12-3 00:04:41 | 显示全部楼层
黑子 发表于 2014-12-2 21:24
数组没有越界,只是uint8的ave为什么除法完结果是这个?

就是正常的计算结果,你推算一下。
来自安卓客户端来自安卓客户端
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回列表 返回顶部