#include<stdio.h>
int main()
{
int a;
scanf("%d",&a);
float f[a];
f[0]=f[1]=1;
int i;
for(i=0;i<a;i++)
{
f[i+2]=f[i]+f[i+1];
}
printf("%0.2f",f[a-1]);
return 0;
}
修改如下,供参考:
#include <stdio.h>
#include <malloc.h>
int main()
{
int a;
scanf("%d", &a);
//float f[a];
double* f = (double *)malloc(sizeof(double) * a);
f[0] = f[1] = 1;
int i;
for (i = 2; i < a; i++) //for (i = 0; i < a-1; i++)
{
f[i] = f[i - 1] + f[i - 2]; //f[i+2]=f[i]+f[i+1];
}
printf("%0.2f", f[a-1]);
free(f);
return 0;
}