C程序中未知的测试用例错误

时间:2017-06-09 17:07:37

标签: c

这是我必须提交作业的问题,因此必须在线评估。我的程序在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;   
}

这些是测试用例(未知):

Image1

这是我的评估输出:

Image2

PS:我在许多此类程序中遇到类似的问题,包括几个测试用例。

我也问过类似的问题Cannot identify error with code, failing a test case

如果有人建议如何处理这些未知的测试用例,那将会很有帮助。

1 个答案:

答案 0 :(得分:1)

如果我没弄错,你应该可以从0公里开始。我继续尝试自己的测试用例: 从km 0开始,结束km 25,升使用1

if(c.startKm < 0 || c.endKm <= c.startKm || c.litres <= 0)