C: 对于 (i=0;i<=N;i++) { t[i] = pow(a,0.i); } 总是返回 1

C: for (i=0;i<=N;i++) { t[i] = pow(a,0.i); } ALWAYS returning 1

C 编程: 尝试将 a^i 的值存储在浮点数 table 中,而 (a) 是作为输入的整数变量并且 i = 0,N (N 也是作为输入的整数变量)

使用我创建的这个函数:

void remplissage(double *t,int a,int N)
{
 int i;
 double aux;

 for (i=0;i<=N;i++)
  {
    t[i] = pow(a,0.i);
  }
}

然后显示值:

void affichage(double *t,int N)
 {
 int i;
 for (i=0;i<=N;i++)
   {
    printf("tab[%d]= %.3f\n", i, t[i]);
   }
 }

给我这个:

Saisir a: 990
Saisir N= 5
tab[0]= 1.000
tab[1]= 1.000
tab[2]= 1.000
tab[3]= 1.000
tab[4]= 1.000
tab[5]= 1.000

对于我选择的任何 (a) 和 (N)。

删除 i 前面的 0.(或使用 i / 10.0 作为 pow 的第二个参数——参见注释)。

按照你的方式,指数始终为 0。

实际上,它不是符合标准的代码,因为 i 是一个整数后缀,而 0. 是一个浮点数常量。但是您的编译器似乎无论如何都将其接受为 0。