TOPIC

PROBLEM 1012 - URI Fórum 1.0

URI Online Judge asked 7 years ago

URI Online Judge Fórum 1.0

MOD

This topic was solved and cannot recieve new replies.

  • Alex José Silva replied 5 years ago

    Resolvido em Linguagem C

    int main(){
     float a,b,c,tri, cir, quad, trap, ret;
    
     scanf("%f %f %f",&a,&b,&c);
    
     tri    = (a*c)/2;
     cir    = 3.14159*(c*c);
     trap   = ((a+b)*c)/2;
     quad   = b*b;
     ret    = a*b;
    
     printf("TRIANGULO: %.3f\n",tri);
     printf("CIRCULO: %.3f\n",cir);
     printf("TRAPEZIO: %.3f\n",trap);
     printf("QUADRADO: %.3f\n",quad);
     printf("RETANGULO: %.3f\n",ret);
    
    return 0;
    }
  • Jesus Morales Perez replied 4 years ago

    #include <iostream>
    #include <iomanip>
    using namespace std;
    int main() {
        double A,B,C;
        cin>>A>>B>>C;
        cout<<fixed;
        cout<<"TRIANGULO: "<<setprecision(3)<<(A*C)/2<<endl;
        cout<<"CIRCULO: "<<setprecision(3)<<3.14159*C*C<<endl;
        cout<<"TRAPEZIO: "<<setprecision(3)<<((A+B)*C)/2<<endl;
        cout<<"QUADRARO: "<<setprecision(3)<<B*B<<endl;
        cout<<"RETANGULO: "<<setprecision(3)<<B*A<<endl;
        return 0;
    }

    ME SALE WRONG ANSWER ME INDICAN PORQUE ? GRACIAS

  • Unknown replied 4 years ago

    Os três números estão todos em uma linha, separados por espaços. Quando você faz input() para jogar em a, ele lê toda a linha, e dá erro ao tentar converter para float.

    Como input() está trazendo toda a linha digitada, com os valores separados por espaços, você pode usar o método split() para separá-los em um vetor de 3 elementos. Então usar float() em cada um dos elementos, para convertê-los atribuindo a a, b e c.

    [size=85:2n10bbul]Links relevantes: Folha de Resumo de Python 3 (pdf) Ler múltiplos valores de uma linha[/size:2n10bbul]

    PS: Se você abrir no URI a sua página de Submissões, e clicar no erro (Runtime error), ele deverá exibir uma descrição do erro e o ponto onde ele ocorreu. Com isso fica fácil identificar e corrigir o problema.

  • Douglas replied 4 years ago

    Não consigo encontrar o erro ... está dando Runtime, alguém poderia dar uma dica? Obrigado!

    double a = 0;
                double b = 0;
                double c = 0;
    
                a = Convert.ToDouble(Console.ReadLine());
                b = Convert.ToDouble(Console.ReadLine());
                c = Convert.ToDouble(Console.ReadLine());
    
                Console.WriteLine("TRIANGULO: {0:0.000}", ((a * c) / 2));
                Console.WriteLine("CIRCULO: {0:0.000}", (3.14159 * (c * c)));
                Console.WriteLine("TRAPEZIO: {0:0.000}", (((a + b) * c) / 2));
                Console.WriteLine("QUADRADO: {0:0.000}", (b * b));
                Console.WriteLine("RETANGULO: {0:0.000}", (a * b));
  • Emerson replied 4 years ago

    Já tentei de diversas formas e sempre recebo "Wrong answer (20%)". Alguém poderia me ajudar a encontrar meu erro?

    import java.io.IOException;
    import java.util.Scanner;
    import java.util.Locale;
    
    public class Main {
    
        public static void main(String[] args) throws IOException {
    
            //altera Locale para evitar problemas com simbolo separador de decimais
             Locale.setDefault(Locale.ENGLISH);
    
             Scanner s = new Scanner(System.in);
    
             String input = String.format("%.1f %.1f %.1f",
                s.nextDouble(), s.nextDouble(), s.nextDouble());
    
             String[] values = input.split(" ");
    
             final double pi = 3.14159;
    
             double A = Double.parseDouble(values[0]);
             double B = Double.parseDouble(values[1]);
             double C = Double.parseDouble(values[2]);
    
             System.out.format("TRIANGULO: %.3f", (A * C) / 2.0);
             System.out.println("");
             System.out.format("CIRCULO: %.3f", pi * (C * C));
             System.out.println("");
             System.out.format("TRAPEZIO: %.3f", (( A + B) * C) / 2.0);
             System.out.println("");
             System.out.format("QUADRADO: %.3f", B * B);
             System.out.println("");
             System.out.format("RETANGULO: %.3f", A * B);
    
        }
    
    }
  • Unknown replied 4 years ago

    Executei o código com o primeiro Exemplo de Entrada e o resultado diverge do Exemplo de Saída correspondente. Verifique se está utilizando as variáveis corretas para cada fórmula...

  • Marcelo Lopes replied 4 years ago

    continua do mesmo jeito com o scanner nao modificou em nada o problema na ta area do triangulo mais ate onde sei ta certo o calculo

  • Luiz André Honório Alves replied 4 years ago

    Galera, estou tentando enviar a resposta do exercicio 1012 em c# e tá dando wrong answer(10%) porém fiz os testes e todos os resultados batem, alguém pode me dar uma luz aí??

    static void Main(string[] args)
            {
                //Reescrevendo o valor de PI
                Double PI = 3.14159;
    
                //Criando uma array de string a partir dos espaços
                string[] Valores = Console.ReadLine().Split(' ');
    
                //Separando os valores para suas devidas variáveis
                Double A = Convert.ToDouble(Valores[0]);
                Double B = Convert.ToDouble(Valores[1]);
                Double C = Convert.ToDouble(Valores[2]);
    
                //Aplicando as fórmulas de cada item
                Double areaTriangulo = A * C / 2;
                Double areaCirculo = PI * Math.Pow(C, 2);
                Double areaTrapezio = (A + B) * C / 2;
                Double areaQuadrado = Math.Pow(B, 2);
                Double areaRetangulo = A * B;
    
                //Imprimindo na tela o valor de cada item, formatando a resposta com apenas 3 casas após a vírgula
                Console.WriteLine("TRIANGULO: " + areaTriangulo.ToString("#.000"));
                Console.WriteLine("CIRCULO: " + areaCirculo.ToString("#.000"));
                Console.WriteLine("TRAPEZIO: " + areaTrapezio.ToString("#.000"));
                Console.WriteLine("QUADRADO: " + areaQuadrado.ToString("#.000"));
                Console.WriteLine("RETANGULO: " + areaRetangulo.ToString("#.000"));
    
                Console.ReadLine();
            }
  • Jhonathan Nicolas Silva replied 4 years ago

    Boa noite, Alguém poderia me ajudar a descobrir porque está dando WA no meu código? Minha saída está exatamente igual de acordo com o problema.

    #include <stdio.h>
    #include <stdlib.h>
    int main ()
    {
        char buffer[20] ="";
        char resultado[20]="";
        int u =0;
        int i;
        float A, B, C;
        scanf("%[^\n]s",&buffer);
    
        //Covertendo a string buffer para float em A B e C  
        if(buffer != NULL)
        {
            for(i=0;i<19;i++)
            {
                if(buffer[i] != ' ' && buffer[i] != '\0'){
                sprintf(resultado,"%s%c",resultado,buffer[i]);}
    
                else if(buffer[i] == ' ')
               {
                if( u == 0){
    
                A = atof(resultado);
                sprintf(resultado,"");
                   u++;
                   }       
                   else{
    
                    B = atof(resultado);
                    sprintf(resultado,"");
                 }}
    
                 else if(buffer[i] == '\0')
                        {
    
                        C = atof(resultado);
                            break;
                         }
        }}
    
        //Imprimindo Valores
        printf("TRIANGULO: %.3f\n",(A*C)/2);
        printf("CIRCULO: %.3f\n",(C*C*3.14159));
        printf("TRAPEZIO: %.3f\n", ((A+B)*C)/2);
        printf("QUADRADO: %.3f\n", (B*B));
        printf("RETANGULO: %.3f\n", (A*B));
    
        return 0;
        }

    Outro problema é que no segundo exemplo existe um acento agudo depois da palavra trapézio:

    Obrigado!

  • Rodrigo Fioravante replied 4 years ago

    Estou resolvendo o meu problema em Python 2.7 e está dando WA (20%). Isso significa que eu errei ou acertei 20%? A saída está completamente certa e o valor dos cálculos está ok, porém não consigo acertar. Tem algum problema com esta questão?

    #entrada
    A, B, C = raw_input().split()
    A, B, C = [round(float(A), 1), round(float(B), 1), round(float(C), 1)]
    
    #execução...
    
    #saida
    print "TRIANGULO: %.3f\n\
    CIRCULO: %.3f\n\
    TRAPEZIO: %.3f\n\
    QUADRADO: %.3f\n\
    RETANGULO: %.3f" % (triangle, circle, trapezium, square, rectangle)

    Não consigo saber o que tem de errado. Os resultados dos cálculos batem com os inputs oferecidos no exemplo.

  • Gerson Groth replied 4 years ago

    Quando você usa

    in.readLine()

    tu está lendo os três valores de uma só vez (a linha inteira). Considere o uso de Scanner, dessa forma tu conseguirá ler cada double separadamente

    in.nextDouble()
  • Marcelo Lopes replied 4 years ago

    RUNTIME ERROR Exception in thread "main" java.lang.NumberFormat: at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1250) at java.lang.Double.parseDouble(Double.java:540) at Main.main(Main.java:21) Command exited with non-zero status (1)

    import java.io.IOException;
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    
    /**
     * IMPORTANT: 
     *      O nome da classe deve ser "Main" para que a sua solução execute
     *      Class name must be "Main" for your solution to execute
     *      El nombre de la clase debe ser "Main" para que su solución ejecutar
     */
    public class Main {
    
        public static void main(String[] args) throws IOException {
    
            BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
            double A = 0.00,B = 0.00,C = 0.00;
            double triangulo = 0.00,circulo = 0.00, trapezio = 0.00,quadrado = 0.00,retangulo = 0.00;
            double pi = 3.14159;
    
            A = Double.parseDouble(in.readLine());
            B = Double.parseDouble(in.readLine());
            C = Double.parseDouble(in.readLine());
    
            triangulo = (A * B)/2;
            circulo = (pi * (C * C));
            trapezio = ((A + B) * C)/2;
            quadrado = B * B;
            retangulo = A * B;
    
            System.out.println("TRIANGULO: " + String.format("%.3f", triangulo));
            System.err.println("CIRCULO: " + String.format("%.3f", circulo));
            System.out.println("TRAPEZIO: " + String.format("%.3f", trapezio));
            System.out.println("QUANDRADO: " + String.format("%.3f", quadrado));
            System.out.println("RETANGULO: " + String.format("%.3f", retangulo));
    
        }
    
    }
  • UBIRAJARA replied 4 years ago

    #include<stdio.h>
    main(){
        float a,b,c,t,ci,tp,q,r;
        float pi=3.14159;
        scanf("%f %f %f",&a,&b,&c);
        t=(a*c)/2;
        printf("TRIANGULO: %.3f\n",t);
        ci=pi*c*c;
        printf("CIRCULO: %.3lf\n",ci);
        tp=((a+b)*c)/2;
        printf("TRAPEZIO: %.3f\n",tp);
        q=b*b;
        printf("QUADRADO: %.3f\n",q);
        r=(a*b);
        printf("RETANGULO: %.3f",r);
    }

    o erro que está dando é de 10% wrong answer. se alguem puder ajuda

  • Terence Marinho replied 4 years ago

    Boa tarde! Reveja sua fórmula para a área do quadrado...

    MOD
  • Jordan Basiliskh replied 4 years ago

    Alguém consegue encontrar meu erro? Da WA 20%, porém a saída é exatamente igual ao pedido.

    #include <stdio.h>
    int main (void)
    {
        double A, B, C, at, cir, trape, quad, ret;
        scanf("%lf %lf %lf", &A, &B, &C);
        at = (A * C)/2;
        cir =(C*C)*3.14159;
        trape = ((A+B)/2)* C;
        quad = B*4;
        ret = A*B;
        printf("TRIANGULO: %.3lf\n", at);
        printf("CIRCULO: %.3lf\n", cir);
        printf("TRAPEZIO: %.3lf\n", trape);
        printf("QUADRADO: %.3lf\n", quad);
        printf("RETANGULO: %.3lf\n", ret);
    
        return 0;
    }
  • Terence Marinho replied 4 years ago

    Boa noite! Parece que seu erro está somente na mensagem "RECTANGULO" (conforme sublinhado), tire esse 'C' que deve passar!

    MOD
  • Wilmer Garzon replied 4 years ago

    SABEN PORQUE ME SALE WRONG ANSWER SI ME ESTA IMPRIMIENDO TAL Y COMO LO PIDE EL PROGRAMA?

    include include include

    using namespace std; int main(){ float A,B,C,TRIANGULO,CIRCULO,TRAPECIO,CUADRADO,RECTANGULO; A=B=C=TRIANGULO=CIRCULO=TRAPECIO=CUADRADO=RECTANGULO=0.0f; cin>>A;cin>>B;cin>>C; TRIANGULO=AC/2; CIRCULO=pow(C,2)3.14159; TRAPECIO=((A+B)C)/2; CUADRADO=pow(B,2); RECTANGULO=AB; cout<<fixed; cout<<"TRIANGULO: "<<setprecision(3)<<TRIANGULO<<endl; cout<<"CIRCULO: "<<setprecision(3)<<CIRCULO<<endl; cout<<"TRAPEZIO: "<<setprecision(3)<<TRAPECIO<<endl; cout<<"QUADRADO: "<<setprecision(3)<<CUADRADO<<endl; cout<<"RECTANGULO: "<<setprecision(3)<<RECTANGULO<<endl; return 0; }

  • Felipe Lage replied 4 years ago

    Estou tentando fazer esse problema 1012 através funções. Deu erro de compilaçao..alguem poderia ajudar?

    include define PI 3.14159

    //a área do triângulo retângulo que tem A por base e C por altura. int a_triang(float A,float C,float s){ scanf("%f%f",&A,&C); s = (A * C)/2; printf("%.3f\n",s); return 0; }

    //b) a área do círculo de raio C. (pi = 3.14159) int a_circ(float C, float s){ scanf("%f",&C); s = PI (CC); printf("%.3f\n",s); return 0; }

    //c) a área do trapézio que tem A e B por bases e C por altura. int a_trapezio(float A, float B, float C, float s){ scanf("%f%f%f",&A,&B,&C); s = (A + B)*C/2; printf("%.3f\n",s); return 0; }

    //d) a área do quadrado que tem lado B. int a_quad(float B, float s){ scanf("%f",&B); s = B*B; printf("%.3f\n",s); return 0; }

    //e) a área do retângulo que tem lados A e B. int a_ret(float A,float B,float s){ scanf("%f%f",&A,&B); s = A*B; printf("%.3f\n",s); return 0; }

    int main(){ float A,B,C; //entre com tres valores para A,B,C; scanf("%f%f%f",&A,&B,&C); a_triang(); a_circ(); a_trapezio(); a_quad(); a_ret();

    return 0; }

  • Luiz Alexandre França replied 4 years ago

    Desistindo de usar o URI. Já fiz tudo quanto é alteração e mesmo assim ainda aparece WA.

    string = input()
    string = string.split(" ")
    
    A = round(float(string[0]),1)
    B = round(float(string[1]),1)
    C = round(float(string[2]),1)
    
    pi = 3.14159
    
    triangulo = (A * C) / 2 
    circulo = pi*(C**2)
    trapezio = ((A+B) * C) / 2   
    quadrado = B * B  
    retangulo = A * B 
    
    print("TRIANGULO: {:.3f}".format(triangulo))
    print("CIRCULO: {:.3f}".format(circulo))
    print("TRAPEZIO: {:.3f}".format(trapezio))
    print("QUADRADO: {:.3f}".format(quadrado))
    print("RETANGULO: {:.3f}".format(retangulo))
  • Crisman Penalva Santos replied 4 years ago

    Galera, alguém pode me ajudar? Já tentei varias formas e sempre dá resposta errada. Meu código está assim:

    int main(){
        char line[100];
        char* a;
        char* b;
        float A,B,C;
        gets(line);
        A=strtof (line,&a);
        B=strtof (a,&b);
        C=strtof (b,NULL);
    
        setlocale(LC_ALL, "Portuguese");
        printf("TRIÂNGULO: %0.3f\n", ((A*C)/2));
        printf("CÍRCULO: %0.3f\n", ((3.14159)*C*C));
        printf("TRAPÉZIO: %0.3f\n", ((A+B)*C)/2.0);
        printf("QUADRADO: %0.3f\n", (B*B));
        printf("RETÂNGULO: %0.3f\n", ((A*B)));
        return 0;
    }
1 of 7