为什么第二个for循环不执行?

凯文·阮

以下代码中的问题是第二个for循环似乎未执行。

我添加了printf("1");andprintf("h");语句以测试循环是否正在执行。程序打印1,但不打印h。

有关该程序的一些背景信息是,我应该分配一个2D数组,并在该数组的每一行中以不同的频率存储正弦波。

变量PI也定义为带有值的宏acos(-1).

short int** Notes = (short int**) calloc(25,sizeof(short int*));
for(int x = 0; x < 25; x++){
    Notes[x] = (short int*) calloc(44100 * (1/3),sizeof(short int));
    }

    for(int x = 0; x < 25; x++){
        float freq;
        switch(x){
            case 0:
                freq = 440.00;
                break;
            case 1:
                freq = 466.16;
                break;
            case 2:
                freq = 493.88;
                break;
            case 3:
                freq = 523.25;
                break;
            case 4:
                freq = 554.37;
                break;
            case 5:
                freq = 587.33;
                break;
            case 6:
                freq = 622.25;
                break;
            case 7:
                freq = 659.25;
                break;
            case 8:
                freq = 698.46;
                break;
            case 9:
                freq = 739.99;
                break;
            case 10:
                freq = 783.99;
                break;
            case 11:
                freq = 830.61;
                break;
            case 12:
                freq = 880.00;
                break;
            case 13:
                freq = 932.33;
                break;
            case 14:
                freq = 987.77;
                break;
            case 15:
                freq = 1046.50;
                break;
            case 16:
                freq = 1109.73;
                break;
            case 17:
                freq = 1174.66;
                break;
            case 18:
                freq = 1244.51;
                break;
            case 19:
                freq = 1318.51;
                break;
            case 20:
                freq = 1396.91;
                break;
            case 21:
                freq = 1479.98;
                break;
            case 22:
                freq = 1567.98;
                break;
            case 23:
                freq = 1661.22;
                break;
            case 24:
                freq = 0.00;
                break;                  
        }
        printf("1");
        for(int y = 0; y < 44100 * (1/3); y++)
        {
            Notes[x][y] = 32700 * sin(2 * PI * freq * (y/44100));
            printf("h");
        }
    }
Aschepler
    for(int y = 0; y < 44100 * (1/3); y++)

该子语句从不执行,因为y < 44100 * (1/3)它始终为false。这是因为整数除法将舍入为零,(1/3)因此44100 * (1/3)也为零。

假设您想要的值是44100的三分之一,只需编写即可44100/3

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么第二个for循环不执行?

来自分类Dev

为什么我的程序不执行第二个catch块?

来自分类Dev

当错误存在时,为什么我的程序不执行第二个catch块?

来自分类Dev

为什么我的第二个while循环无法执行?

来自分类Dev

为什么不评估第二个ifelse?

来自分类Dev

为什么第二个for循环未运行?

来自分类Dev

为什么当第二个箭头指示器出现时EA不执行任何操作?

来自分类Dev

为什么在第二个循环中不进行for循环打印?

来自分类Dev

第二个for循环未执行

来自分类Dev

第二个for循环未执行

来自分类Dev

如果条件执行,为什么不会第二个

来自分类Dev

为什么我的第二个函数不返回任何东西?

来自分类Dev

为什么第二个事件侦听器不触发?

来自分类Dev

为什么C ++不尝试使用第二个模板重载?

来自分类Dev

为什么不压缩/ var / log上的第二个日志文件

来自分类Dev

为什么错误处理程序不处理第二个错误?

来自分类Dev

Java基准测试-为什么第二个循环更快?

来自分类Dev

为什么我的for循环卡在第二个选项上?

来自分类Dev

是否需要第二个“ for”循环,如果需要,为什么?

来自分类Dev

为什么编译器跳过第二个scanf循环?

来自分类Dev

为什么 while 不会在第二个循环处停止

来自分类Dev

为什么第二个printf打印0

来自分类Dev

为什么它适用第二个参数?

来自分类Dev

为什么在加入第二个线程之前不执行第一个加入的线程之间的主代码?

来自分类Dev

第二个FOR循环被跳过

来自分类Dev

为什么BSS中静态数组上的第二个循环比第一个循环快?

来自分类Dev

在链式承诺中,为什么第二个承诺在第一个承诺之前执行?

来自分类Dev

为什么第二个for循环会覆盖Python中的第一个?

来自分类Dev

Python执行一个“ for”循环,但不执行第二个

Related 相关文章

  1. 1

    为什么第二个for循环不执行?

  2. 2

    为什么我的程序不执行第二个catch块?

  3. 3

    当错误存在时,为什么我的程序不执行第二个catch块?

  4. 4

    为什么我的第二个while循环无法执行?

  5. 5

    为什么不评估第二个ifelse?

  6. 6

    为什么第二个for循环未运行?

  7. 7

    为什么当第二个箭头指示器出现时EA不执行任何操作?

  8. 8

    为什么在第二个循环中不进行for循环打印?

  9. 9

    第二个for循环未执行

  10. 10

    第二个for循环未执行

  11. 11

    如果条件执行,为什么不会第二个

  12. 12

    为什么我的第二个函数不返回任何东西?

  13. 13

    为什么第二个事件侦听器不触发?

  14. 14

    为什么C ++不尝试使用第二个模板重载?

  15. 15

    为什么不压缩/ var / log上的第二个日志文件

  16. 16

    为什么错误处理程序不处理第二个错误?

  17. 17

    Java基准测试-为什么第二个循环更快?

  18. 18

    为什么我的for循环卡在第二个选项上?

  19. 19

    是否需要第二个“ for”循环,如果需要,为什么?

  20. 20

    为什么编译器跳过第二个scanf循环?

  21. 21

    为什么 while 不会在第二个循环处停止

  22. 22

    为什么第二个printf打印0

  23. 23

    为什么它适用第二个参数?

  24. 24

    为什么在加入第二个线程之前不执行第一个加入的线程之间的主代码?

  25. 25

    第二个FOR循环被跳过

  26. 26

    为什么BSS中静态数组上的第二个循环比第一个循环快?

  27. 27

    在链式承诺中,为什么第二个承诺在第一个承诺之前执行?

  28. 28

    为什么第二个for循环会覆盖Python中的第一个?

  29. 29

    Python执行一个“ for”循环,但不执行第二个

热门标签

归档