发 帖  
原厂入驻New
申请华秋企业认证 多层板首单免费打样!
30s提交资料,10分钟通过审核(免费赔付+顺丰包邮)>>立即报名
[问答] 为什么我定义的两个长度为1200的double型数组打印总是出错?
58 数组 程序 代码
分享
我定义了两个长度为1200的double型数组  用程序对它进行赋值  打印总是出现nan  要么就是数据不对  怎么解决啊  是不是数据超出了代码段的长度  怎么解决呢  希望原子哥解惑哦
0
2019-10-18 02:21:14   评论 分享淘帖 邀请回答

相关问题

12个回答
看代码没问题,倒是你的计算公式,是不是存在问题,就没推导了。
你可以直接赋值,定值试试。验证下是赋值问题,还是公式问题。
2019-10-18 07:31:39 评论

举报

2019-10-18 07:50:04 评论

举报

float xiaoyu_2000[1200];
float  dayu_2000[1200];
uint16_t clk, i_old,i_new;
void list(void)
{
  
float Angle_1,Angle_2;
float encoder_1,encoder_2; 
uint16_t i,j;
for(i=0;i<1200;i++)
{
 encoder_1+=0.05;
 Angle_1 = encoder_1*PI/180; 
 dayu_2000 = (Angle_1-atanf( L*(1-cos(Angle_1))/(S+L*sin(Angle_1))))*180/PI;
//printf("\r\n the data is111:  %f\r\n",dayu_2000);
}
for(j=0;j<1200;j++)
{
 encoder_2+=0.05;
 Angle_2 = encoder_2*PI/180; 
 xiaoyu_2000[j] = (Angle_2+atanf( L*(1-cos(Angle_2))/(S-L*sin(Angle_2))))*180/PI;
 //printf("\r\n the data is:  %f \r\n",xiaoyu_2000[j]);
}
printf("\r\n the data is:  completed \r\n");
}
2019-10-18 07:55:13 评论

举报

还请原子哥帮我看看 谢谢了
2019-10-18 08:14:35 评论

举报

2019-10-18 08:24:24 评论

举报

float encoder_1,encoder_2;
把encoder_1和encoder_2初始化时候 赋值为0,试一试;
这两个变量是局部变量,初始化不一定为0,所以这句话encoder_1+=0.05; 这个结果就无法预计了;
2019-10-18 08:38:58 评论

举报

同意楼上,局部变量你还没赋值就开始+=了,那肯定出问题啊,你不赋值,他会是内存里某个不可预知的值,=你算结束,肯定都是无规律的乱七八糟的,我觉的你这程序不是在板子上跑把,在VC6.0上run就可以的,学会单步调试,你不信在你encoder_1+=0.05 之前+个断点看看,他最初是个什么值你就明白了。
2019-10-18 08:48:00 评论

举报

是在板子上用的  想初始化一个表    C语言不是规定定义变量时不赋初值时 默认为0 吗
2019-10-18 08:57:41 评论

举报

2019-10-18 09:11:52 评论

举报

试过了 直接赋值能成功  打印也没有问题  感谢原子哥
2019-10-18 09:17:40 评论

举报

2019-10-18 09:23:28 评论

举报

2019-10-18 09:37:12 评论

举报

只有小组成员才能发言,加入小组>>

59个成员聚集在这个小组

加入小组

创建小组步骤

关闭

站长推荐 上一条 /10 下一条

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