什么是错误的这个c++代码从URI在线判断

What is wrong with this C++ code from URI Online Judge?

本文关键字:代码 URI 在线 判断 c++ 错误 什么      更新时间:2023-10-16

你能帮我在这个c++代码中找到URI在线判断问题的错误吗?这就是问题所在:https://www.urionlinejudge.com.br/judge/en/problems/view/1038这是代码:

#include <iostream>
#include <cstdio>
using namespace std;
int Code,Qau;
double F;
int main () {
    cin >> Code >> Qau;
    if (Code==1) {
        F=4.00*Qau;
        cout <<"Total: R$ ";
        printf ("%.2lfn",F);
    } else if (Code==2) {
        F=4.50*Qau;
        cout <<"Total: R$ ";
        printf ("%.2lfn",F);
    } else if (Code==3) {
        F=5.00*Qau;
        cout <<"Total: R$ ";
        printf ("%.2lfn",F);
    } else if (Code==4) {
        F=2.00*Qau;
        cout <<"Total: R$ ";
        printf ("%.2lfn",F);
    } else if (Code==5) {
        F=1.50*Qau;
        cout <<"Total: R$ ";
        ("%.2lf",F); 
        cout <<endl;
    } 
return 0;
}

在第五个块中,您忘记使用printf,只有带表达式的大括号,但没有命令本身。

您指定的问题可以通过以下代码简单地解决

#include <iostream>
#include <iomanip>
using namespace std;
int main() {
    float val[] = { 4, 4.5, 5, 2, 1.5 };
    int X, Y;
    cin >> X >> Y;
    cout << "Total: R$ " << setprecision(2) << fixed << val[X - 1] * Y << endl;
    return 0;
}

或简化代码

#include <iostream>
#include <cstdio>
using namespace std;
int main() {
    int Code, Qau;
    double F;
    cin >> Code >> Qau;
    if (Code == 1) F = 4.00;
    else if (Code == 2) F = 4.50;
    else if (Code == 3) F = 5.00;
    else if (Code == 4) F = 2.00;
    else if (Code == 5) F = 1.50;
    printf("Total: R$ %.2lfn", F * Qau);
    return 0;
}