为什么不管输入什么,输出都是same

#include <stdio.h>
int main()

{
int n,x,i,y,a,b;
scanf("%d",&n);
scanf("%d%d",&x,&y);
double e,c=1.0*y/x;
for(i=1;i<n;i++)
{
scanf("%d%d",&a,&b);
}

for(i=1;i<n;i++)
{
 e=1.0*b/a;
    if(c-e>0.05)
        {printf("better\n");
        }
    else if(e-c>0.05)
        {printf("worse\n");
        }
    else
        {printf("same\n");
        }
}

return 0;
}

代码修改如下:

#include <stdio.h>
#include <stdlib.h>
int main()

{
    int n,x,i,y,*a,*b;
    double e,c;
    scanf("%d",&n);
    scanf("%d%d",&x,&y);
    c =1.0*y/x;
    a = (int*)malloc(sizeof(int)*n);
    b = (int*)malloc(sizeof(int)*n);

    for(i=1;i<n;i++)//确定这里是i从1开始吗,这样的话只有n-1组数据,n组数据的话,i = 0
    {
        scanf("%d%d",&a[i],&b[i]);
    }

    for(i=1;i<n;i++)//确定这里是i从1开始吗,这样的话只有n-1组数据,n组数据的话,i = 0
    {
        e=1.0*b[i]/a[i];
        if(c-e>0.05)
        {printf("better\n");
        }
        else if(e-c>0.05)
        {printf("worse\n");
        }
        else
        {printf("same\n");
        }
    }
    free(a);
    free(b);
    a = 0;
    b = 0;
    return 0;
}

看的有点奇怪,为什么你要重复赋值a和b?