【问题标题】:A looping statement in C [closed]C中的循环语句[关闭]
【发布时间】:2013-06-10 13:14:11
【问题描述】:

我有这个数组,但我似乎不知道如何形成一个 for 循环语句才能在列表中显示这些值。

float array1[]   = {30 , 0.81 , 0.16 , 30 , 2813 , 58 , 8.4 , 0.61};

我试着弄明白了,但它一直是一个语法错误

for (array1; array1 <= 8; array1++ )
   printf("%f\n", array1);

有什么建议吗??

【问题讨论】:

    标签: c arrays loops


    【解决方案1】:

    应该是:

    for(int i = 0; i < sizeof(array1)/sizeof(float); i++)
        printf("%f\n", array1[i]);
    

    【讨论】:

    • int i = 0 在 for 循环中不会在 C 中工作
    • @pivovarit 你迟到了 14 年,C99 已于 1999 年发布。
    • printf("%f\n", array1[i]);
    【解决方案2】:

    array1 是数组的名称,而不是您要递增的变量!

    int i = 0;
    for (i = 0; i < 8; i++ )   printf("%f\n", array1[i]);
    

    【讨论】:

    • array1 一个变量,它只是一个不可修改的左值。
    • 我说这是一个变量......增加它是没有意义的(至少在这个级别)
    • 这是一个有趣的术语,const variable...(array1不能修改,*(array1+n)可以。)
    【解决方案3】:

    你需要一个索引到你的数组中:

    int i;
    for (i = 0; i < SIZE; ++i) { // SIZE should be 8.
        printf("%f\n", array1[i]);
    }
    

    将您的数组视为包含 SIZE 个数据块的连续内存部分。索引i 用于访问存储在每个块中的值。

    【讨论】:

      【解决方案4】:
      int i = 0;
      for (i; i <= 8; i++)
          printf("%f\n", array1[i]);
      

      【讨论】:

        【解决方案5】:
        int length = sizeof(array1) / sizeof(float);
        for(int i = 0; i< length; i++)
        {
         printf("%f\n", array1[i]);
        }
        

        【讨论】:

        • sizeof(array1) / sizeof(array1) == 1
        • 我认为,使用sizeof(array1) / sizeof(array1[0])... 而不是单词float.. 是更好的做法/习惯。
        【解决方案6】:

        试试下面的代码,

        float *ind;
        for (ind=array1; ind < array1+8; ind++ ){
            printf("%f\n", *ind)
        }
        

        【讨论】:

          猜你喜欢
          • 2016-12-27
          • 2013-04-21
          • 2013-10-17
          • 2016-09-08
          • 1970-01-01
          • 1970-01-01
          • 2021-09-28
          • 1970-01-01
          • 2021-12-19
          相关资源
          最近更新 更多