不知道问题出在哪里 也能够按逻辑输出和他的样例输出是一样的,总是部分正确

下面是我自己写的代码
#include<stdio.h>
int main()
{
int t = 1; int x = 5; float y = 29.6; int count = 0; float d = 0; float m = 0; scanf("%d", &t); if (t>10||t<1) { goto again; } while (count < t) { scanf("%d%f", &x, &y); if (x>7||x<1||y<0||y>50) { goto again; } if (x == 5) { if (y >= 200 / 8.38) { d = 0.4*(y - (200 / 8.38)); d = (int)(d100.0+0.5) / 100.0;
}
else
{
d = y * 8.38 - y * 7.98;
d = (int)(d100.0 + 0.5) / 100.0;
} } else { if (y >= 200 / 8.38) { d = 0.3*(y - (200 / 8.38)); d = (int)(d100.0 + 0.5) / 100.0;
}
else
{
d = y * 8.38 - y * 8.08;
d = (int)(d100.0 + 0.5) / 100.0;
} } m = (int)(8.38y100.0 + 0.5) / 100.0;
printf("Order amount: %.2f\n",m); if (y >= 200 / 8.38) { printf("E-coupon discount amount: 20.00\n"); } else { printf("E-coupon discount amount: 0.00\n"); } printf("Discount amount: %.2f\n", d); if (y >= 200 / 8.38) { printf("Payment amount: %.2f", m - 20 - d); if(count<1) { printf("\n"); } } else { printf("Payment amount: %.2f", m - 0 - d); if(count<1) { printf("\n"); } } count++; } again: return 0;}
你这代码真的是同一道题吗?完美诠释了什么叫”又臭又长“。