C 使用2开关语句打印输出

C 使用2开关语句打印输出,c,pointers,switch-statement,C,Pointers,Switch Statement,我只是想不出如何得到这次测试的最后一行。最后一行显示了两个变量,分别是毫升和液体盎司,如何将这两个变量放入两个开关语句中?或者如何使最后一行以与测试运行相同的方式显示 提前谢谢我对您提出的确切问题有点困惑,但您可以在交换机中嵌套一个交换机 Metric Units (Input) 1: Milliliter 2: Centiliter 3: Deciliter 4: Liter Enter the number of the metric unit: 5 English Units (Outp

我只是想不出如何得到这次测试的最后一行。最后一行显示了两个变量,分别是毫升和液体盎司,如何将这两个变量放入两个开关语句中?或者如何使最后一行以与测试运行相同的方式显示


提前谢谢

我对您提出的确切问题有点困惑,但您可以在交换机中嵌套一个交换机

Metric Units (Input)
1: Milliliter
2: Centiliter
3: Deciliter
4: Liter
Enter the number of the metric unit: 5

English Units (Output)
1: Fluid Ounce
2: Cup
3: Pint
4: Quart
5: Gallon
Enter the number of the English unit: 0
Enter the milliliter value to convert: 300
300.000 milliliter(s) = 10.144 fluid ounce(s)
但是,如果可以的话,这种方法有点耗费人力,我会将englishUnit和metricUnit更改为数组,这样您就可以用一个printf()打印输出。当然,您必须重写几乎所有的程序

void printOutput(int metricUnit, int englishUnit, int convert, double converted)
{
    switch (metricUnit)
    {
        case 1: printf("%lf milliliter(s) = ", (double)convert);
                switch (englishUnit)
                {
                    case 1: printf("%lf fluid ounce(s)\n", (double)converted); break;
                    case 2: printf("%lf cup(s)\n", (double)converted); break;
                    case 3: printf("%lf pint(s)\n", (double)converted); break;
                    case 4: printf("%lf quart(s)\n", (double)converted); break;
                    case 5: printf("%lf gallons(s)\n", (double)converted); break;
                }
        break;

        case 2: printf("%lf centiliter(s) = ", (double)convert);
                switch (englishUnit)
                {
                    case 1: printf("%lf fluid ounce(s)\n", (double)converted); break;
                    case 2: printf("%lf cup(s)\n", (double)converted); break;
                    case 3: printf("%lf pint(s)\n", (double)converted); break;
                    case 4: printf("%lf quart(s)\n", (double)converted); break;
                    case 5: printf("%lf gallons(s)\n", (double)converted); break;
                }
        break;

        case 3: printf("%lf deciliter(s) = ", (double)convert);
                switch (englishUnit)
                {
                    case 1: printf("%lf fluid ounce(s)\n", (double)converted); break;
                    case 2: printf("%lf cup(s)\n", (double)converted); break;
                    case 3: printf("%lf pint(s)\n", (double)converted); break;
                    case 4: printf("%lf quart(s)\n", (double)converted); break;
                    case 5: printf("%lf gallons(s)\n", (double)converted); break;
                }
        break;

        case 4: printf("%lf liter(s) = ", (double)convert);
                switch (englishUnit)
                {
                    case 1: printf("%lf fluid ounce(s)\n", (double)converted); break;
                    case 2: printf("%lf cup(s)\n", (double)converted); break;
                    case 3: printf("%lf pint(s)\n", (double)converted); break;
                    case 4: printf("%lf quart(s)\n", (double)converted); break;
                    case 5: printf("%lf gallons(s)\n", (double)converted); break;
                }
        break;

        default: printf("%lf milliliter(s) = ", (double)convert);
                switch (englishUnit)
                {
                    case 1: printf("%lf fluid ounce(s)\n", (double)converted); break;
                    case 2: printf("%lf cup(s)\n", (double)converted); break;
                    case 3: printf("%lf pint(s)\n", (double)converted); break;
                    case 4: printf("%lf quart(s)\n", (double)converted); break;
                    case 5: printf("%lf gallons(s)\n", (double)converted); break;
                }
        break;
    }
}

请仅提供相关代码。哪一行导致您出现问题?在第一种情况下,
printOutput
有两个输出的格式字符串,但只有一个参数。我不确定哪一行,因为我认为我的所有printOutput都不正确,我正在努力解决将2个变量放入2 switch语句的逻辑问题,正如您在测试运行的最后一句中所看到的,我希望我的printoutput函数输出类似的语句,但我就是不知道如何
void printOutput(int metricUnit, int englishUnit, int convert, double converted)
{
    switch (metricUnit)
    {
        case 1: printf("%lf milliliter(s) = ", (double)convert);
                switch (englishUnit)
                {
                    case 1: printf("%lf fluid ounce(s)\n", (double)converted); break;
                    case 2: printf("%lf cup(s)\n", (double)converted); break;
                    case 3: printf("%lf pint(s)\n", (double)converted); break;
                    case 4: printf("%lf quart(s)\n", (double)converted); break;
                    case 5: printf("%lf gallons(s)\n", (double)converted); break;
                }
        break;

        case 2: printf("%lf centiliter(s) = ", (double)convert);
                switch (englishUnit)
                {
                    case 1: printf("%lf fluid ounce(s)\n", (double)converted); break;
                    case 2: printf("%lf cup(s)\n", (double)converted); break;
                    case 3: printf("%lf pint(s)\n", (double)converted); break;
                    case 4: printf("%lf quart(s)\n", (double)converted); break;
                    case 5: printf("%lf gallons(s)\n", (double)converted); break;
                }
        break;

        case 3: printf("%lf deciliter(s) = ", (double)convert);
                switch (englishUnit)
                {
                    case 1: printf("%lf fluid ounce(s)\n", (double)converted); break;
                    case 2: printf("%lf cup(s)\n", (double)converted); break;
                    case 3: printf("%lf pint(s)\n", (double)converted); break;
                    case 4: printf("%lf quart(s)\n", (double)converted); break;
                    case 5: printf("%lf gallons(s)\n", (double)converted); break;
                }
        break;

        case 4: printf("%lf liter(s) = ", (double)convert);
                switch (englishUnit)
                {
                    case 1: printf("%lf fluid ounce(s)\n", (double)converted); break;
                    case 2: printf("%lf cup(s)\n", (double)converted); break;
                    case 3: printf("%lf pint(s)\n", (double)converted); break;
                    case 4: printf("%lf quart(s)\n", (double)converted); break;
                    case 5: printf("%lf gallons(s)\n", (double)converted); break;
                }
        break;

        default: printf("%lf milliliter(s) = ", (double)convert);
                switch (englishUnit)
                {
                    case 1: printf("%lf fluid ounce(s)\n", (double)converted); break;
                    case 2: printf("%lf cup(s)\n", (double)converted); break;
                    case 3: printf("%lf pint(s)\n", (double)converted); break;
                    case 4: printf("%lf quart(s)\n", (double)converted); break;
                    case 5: printf("%lf gallons(s)\n", (double)converted); break;
                }
        break;
    }
}
char metricUnit[20];
char englishUnit[20];

printf("%lf %s(s) = %lf %s(s)\n", (double)convert, metricUnit, (double)converted, enlgishUnit);