TOPIC
Wrong answer (5%)
GabrielBento asked 3 years ago
Esse programa calcula e dá os resultados esperados pelo URI, mas da 5% de erro! Não sei onde está erro, gostaria que alguém me ajudasse.
Question solved. Code removed.
This topic was solved and cannot recieve new replies.
-
wsalvatore replied 3 years ago
Pelo que vi, suas funções estão corretas, o problema mesmo está na hora de verificar qual o maior... para saber qual é o maior vocÊ deve verificar (beto > rafael && beto > carlos) por exmplo: ai mostra que beto é o maior... do jeito que você fez, sempre vai ter um caso de teste onde dê um "bug" na verificação e não retorne o maior... faça do jeito que coloquei entre parenteses verificando os 3 que dará certo(obs: se não der, troque as variaveis para float).
-
GabrielBento replied 3 years ago
Obrigado Brendo e Werllerson. Seguindo a sugetão de ambos eu consegui. Muito obrigado!
-
Brendo_NAVAL_UEA replied 3 years ago
Siga a orientação do Wellerson. É melhor garantir que um é maior que os dois.
-
GabrielBento replied 3 years ago
Oi Brendo, realmente havia um erro nas respostas. Descobri que era o tipo, agora o retorno está correto. Mas ainda dá Wrong answer (5%).
#include <iostream> #include <cmath> #include <string> using namespace std; double funcaoRafael(double, double); double funcaoBeto(double, double); double funcaoCarlos(double, double); int main() { double rafael, beto, carlos, maior; int x, y, n; string vencedor; cin >> n; for (int c = 1; c <= n; c++) { cin >> x >> y; rafael = funcaoRafael(x, y); // usa a função de Rafael para calcular o valor de x e y beto = funcaoBeto(x, y); // usa a função de Beto para calcular x e y carlos = funcaoCarlos(x, y); // usa a funcao de Carlos para calcular x e y maior = rafael; // pressuponho que Rafael é quem tem o maior numero vencedor = "Rafael"; // pressuponho que Rafael tem o maior numero if (beto > rafael) { // Se Beto tiver o maior valor vencedor = "Beto"; } if (carlos > beto) { // Se o valor de Carlos for maior que o de Beto vencedor = "Carlos"; } cout << vencedor << " ganhou" << endl; } return 0; } double funcaoRafael(double a, double b) { // função que Rafael escolheu return pow(3*a, 2) + pow(b, 2); } double funcaoBeto(double a, double b) { // função que Beto escolheu return 2*pow(a, 2) + pow(5*b, 2); } double funcaoCarlos(double a, double b) { // funcao que Carlos escolheu return -100*a + pow(b, 3); }
-
Brendo_NAVAL_UEA replied 3 years ago
Um exemplo de entrada:
10 15 10 145 10152 121 2002 12 2 1 5 525 4255 1051 61 1 9 987 789 24 69
Sua saída
Beto ganhou **Rafael ganhou** **Beto ganhou** Rafael ganhou Beto ganhou **Beto ganhou** Rafael ganhou Beto ganhou Carlos ganhou Carlos ganhou
Correto
Beto ganhou Carlos ganhou Carlos ganhou Rafael ganhou Beto ganhou Carlos ganhou Rafael ganhou Beto ganhou Carlos ganhou Carlos ganhou
Destaquei seus erros com o **