2015-07-10 29 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