#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?