勒让德多项式,两个程序可单独运行但是合成一个就不行了

img


为什么for循环和它前面的if语句单独运行都没问题,但是合起来就不行了。
#include<stdio.h>
int main()
{

int a,n;
float x,u,v,w;
scanf("%f%d",&x,&a);
if(a==0)
printf("1.00");
if(a==1)
printf("%.2f",x);
for(n=2;(a>1)&&(n<=a);n++)
{
    u=0;
    v=x;
    w=((2*n-1)/(float)n)*x*v-((n-1)/(float)n)*u;
    u=v;
    v=w;
}
printf("%.2f",w);

}

你不得用if...else啊

float x,u,v,w;
scanf("%f%d",&x,&a);
if(a==0)
    printf("1.00");
else if(a==1)
  printf("%.2f",x);
else
{
for(n=2;(a>1)&&(n<=a);n++)
{
    u=0;
    v=x;
    w=((2*n-1)/(float)n)*x*v-((n-1)/(float)n)*u;
    u=v;
    v=w;
}
printf("%.2f",w);
}