OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3461|回复: 5

问一个c程序的小问题,请路过的好心人解惑,万分感谢哈。

[复制链接]

16

主题

42

帖子

0

精华

初级会员

Rank: 2

积分
115
金钱
115
注册时间
2016-8-7
在线时间
27 小时
发表于 2016-8-12 21:21:40 | 显示全部楼层 |阅读模式
5金钱
我是用dev c++运行这段代码的,可是不论我怎么该,它只能输出296个值,好像只能循环256次,这是为什么呢?谢谢谢谢啊。
#include"stdio.h"
#include"math.h"
//#define M  11
#define pi  3.14
float X[29]={0};
float Y[1]={0};
float B[29]={
  -0.001822523074,-0.001587929321,1.226008847e-18, 0.003697750857, 0.008075430058,
   0.008530221879,-4.273456581e-18, -0.01739769801, -0.03414586186, -0.03335915506,
  8.073562366e-18,  0.06763084233,   0.1522061825,   0.2229246944,   0.2504960895,
     0.2229246944,   0.1522061825,  0.06763084233,8.073562366e-18, -0.03335915506,
   -0.03414586186, -0.01739769801,-4.273456581e-18, 0.008530221879, 0.008075430058,
   0.003697750857,1.226008847e-18,-0.001587929321,-0.001822523074
};
float x_sum=0;
int main()
{
         int i,j,k;
        float num=0;                    
        for(k=0;k<300;k++)   //就是这里,怎么改k,都好像只循环256次。
        {
                for(j=0;j<29;j++)
           {
                 x_sum=x_sum+B[j]*X[j];
           }   
             Y[0]=x_sum;                          
                 for (i=28;i>0;i--)
                 {
                  X[i]=X[i-1];
                 }
                 num++;
                 X[0]=sin(2.0*pi*50.0*num/1000.0)+sin(2.0*pi*200.0*num/1000.0);
                 printf("%f\n",X[0]);
                 x_sum=0;   
                // printf("%f\n",Y[0]);                 
    }      
   return 0;
}

最佳答案

查看完整内容[请看2#楼]

替楼主试了一下,可以输出300个值的。换个编译器试一下。 我在这个网站试的 http://codepad.org/
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

5

主题

163

帖子

0

精华

高级会员

Rank: 4

积分
615
金钱
615
注册时间
2011-11-7
在线时间
180 小时
发表于 2016-8-12 21:21:41 | 显示全部楼层
替楼主试了一下,可以输出300个值的。换个编译器试一下。

我在这个网站试的  http://codepad.org/
回复

使用道具 举报

16

主题

42

帖子

0

精华

初级会员

Rank: 2

积分
115
金钱
115
注册时间
2016-8-7
在线时间
27 小时
 楼主| 发表于 2016-8-12 21:23:48 | 显示全部楼层
不用看代码的具体是干什么的。我只是搞不懂为什么大循环只输出256个值。
回复

使用道具 举报

16

主题

42

帖子

0

精华

初级会员

Rank: 2

积分
115
金钱
115
注册时间
2016-8-7
在线时间
27 小时
 楼主| 发表于 2016-8-12 21:31:29 | 显示全部楼层
可以把for下面的都注释掉,但还是256个值。。。。。
回复

使用道具 举报

2

主题

7

帖子

0

精华

初级会员

Rank: 2

积分
62
金钱
62
注册时间
2012-10-11
在线时间
8 小时
发表于 2016-8-12 22:11:47 | 显示全部楼层
本帖最后由 夏与冬之中 于 2016-8-12 22:20 编辑

666.png
回复

使用道具 举报

40

主题

144

帖子

0

精华

高级会员

Rank: 4

积分
513
金钱
513
注册时间
2013-7-26
在线时间
72 小时
发表于 2016-8-14 09:23:54 | 显示全部楼层
256 是一个字节0xff,但是k是一个int长度,难道你的编译器设置过int类型为一个字节? 你可以换个编译器试试?或者查查你的int的定义
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-7 10:19

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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