这是我必须提交作业的问题,因此必须在线评估。我的程序在7个测试用例中有6个正常运行。只提供了3个测试用例,如图所示:
体育或经济车
帮助Kamath先生检查他的车辆是否是经济型轿车。如果行驶里程小于或等于15公里,程序应显示“有燃气”,如果里程不小于30公里,程序应显示“经济型轿车”。否则显示“燃油经济性”。编写C程序以从用户获取Car变量的值。创建一个名为Car的结构。输入的输入值的顺序应该根据结构变量
struct Car{
float startKm;
float endKm;
float litres;
};
测试用例 输入1
30
50
5
输出1
There is a gas hog
输入2
40.5
80.5
1.5
输出2
Fuel Economy
输入3
30
0
5
输出3
You have entered 0
我的代码:
#include<stdio.h>
struct Car
{
float startKm;
float endKm;
float litres;
};
int main()
{
struct Car c;
float m;
scanf("%f",&c.startKm);
scanf("%f",&c.endKm);
scanf("%f",&c.litres);
m=(c.endKm-c.startKm)/c.litres;
if(c.startKm<=0||c.endKm<=0||c.litres<=0)
{
printf("You have entered 0"); return 0;
}
else if(m<=15)
{
printf("There is a gas hog");
}
else if(m>=30)
{
printf("It is an economy car");
}
else
{
printf("Fuel Economy");
}
return 0;
}
这些是测试用例(未知):
这是我的评估输出:
PS:我在许多此类程序中遇到类似的问题,包括几个测试用例。
我也问过类似的问题Cannot identify error with code, failing a test case
如果有人建议如何处理这些未知的测试用例,那将会很有帮助。
答案 0 :(得分:1)
如果我没弄错,你应该可以从0公里开始。我继续尝试自己的测试用例: 从km 0开始,结束km 25,升使用1
if(c.startKm < 0 || c.endKm <= c.startKm || c.litres <= 0)