2015-07-10 55 views
-9

能否请你帮我找到这个C中的错误在URI在线法官一个问题++代码...这就是问题所在: https://www.urionlinejudge.com.br/judge/en/problems/view/1038 ,这是代码:这个来自URI Online Judge的C++代码有什么问题?

#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 ("%.2lf\n",F); 
    } else if (Code==2) { 
     F=4.50*Qau; 
     cout <<"Total: R$ "; 
     printf ("%.2lf\n",F); 
    } else if (Code==3) { 
     F=5.00*Qau; 
     cout <<"Total: R$ "; 
     printf ("%.2lf\n",F); 
    } else if (Code==4) { 
     F=2.00*Qau; 
     cout <<"Total: R$ "; 
     printf ("%.2lf\n",F); 
    } else if (Code==5) { 
     F=1.50*Qau; 
     cout <<"Total: R$ "; 
     ("%.2lf",F); 
     cout <<endl; 
    } 
return 0; 
} 
+5

1日简单地加以解决:格式化看起来可怕。 –

+2

预期的行为是什么,你得到的行为是什么? –

回答

0

在第五块你忘了使用printf,只有表达式的大括号,但没有命令本身。

0

您指定的问题可以用这个代码

#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$ %.2lf\n", F * Qau); 
    return 0; 
} 
+0

为什么downvote? – Shreevardhan