TOPIC

PROBLEM 1190 - URI Fórum 1.0

URI Online Judge asked 8 years ago

URI Online Judge Fórum 1.0

MOD

This topic was solved and cannot recieve new replies.

  • Eduardo Miranda Gegitz replied 7 years ago

    Boa noite. Meu código tá meio complicado, mas acho que dá pra entender. Alguém pode me dar uma ajuda e dizer o que estou fazendo de errado?

    #include<stdio.h>
    
    int main(void)
    {
       char o;
       int i,j;
       double m[12][12], s, med, cont=0;
       scanf("%c",&o);
       for(i=0;i<12;i++)
       {
           for(j=0;j<12;j++)
           {
               scanf("%lf",&m[i][j]);
           }    
       }    
       if(o=='S')
       {
           for(i=1;i<11;i++)
           {
               if(i<5)
               {
                  for(j=(12-i);j<12;j++)
                  {
                       s+=m[i][j];
                  }
               }
               else
               {
                  for(j=(i+1);j<12;j++)
                  {
                       s+=m[i][j];
                  }           
               }
           }
           printf("%.1lf\n",s);   
       }
       else
       {
          for(i=1;i<11;i++)
           {
               if(i<5)
               {
                  for(j=(12-i);j<12;j++)
                  {
                       s+=m[i][j];
                       cont++;
                  }
               }
               else
               {
                  for(j=(i+1);j<12;j++)
                  {
                       s+=m[i][j];
                       cont++;
                  }           
               }
           }
           med=(s/cont);
           printf("%.1lf\n",med);
       }
       return 0;
    }
  • Gustavo Marini replied 4 years ago

    The input values are floating point. You just need to change:

    int m[12][12];

    by

    double m[12][12];
    MOD
  • md forhad hossain replied 4 years ago

    What's wrong with this code??!! why it is giving error??!!

    using namespace std;

    include<bits/stdc++.h>

    int main(){ //uri 1190

    int m[12][12];
    char ch;
    scanf("%c",&ch);
    
    for(int i=0;i<12;i++){
        for(int j=0;j<12;j++){
            cin  >> m[i][j];
        }
    }
    
    int i,j;
    i = 1;
    float sum =0;
    float cnt = 0;
    for(j=11;j>=7;j--){
        for(i=11-(j-1) ;i<=j-1;i++){
            sum+=m[i][j];
            cnt++;

    // cout << "i: " << i << " j: " << j << endl; } // i++; } if(ch == 'S'){ cout <<fixed << setprecision(1) <<sum << endl; } else { cout <<fixed << setprecision(1) << sum/cnt << endl; } // cout << "cnt: " << cnt << endl;

    return 0;

    }

  • Matheus dos Santos Pereira replied 4 years ago

    Alguém pode me ajudar ??

    #include <iostream>
    #include <string.h>
    
    using namespace std;
    
    int main() {
    
        /**
         * Escreva a sua solução aqui
         * Code your solution here
         * Escriba su solución aquí
         */
    
         int M[12][12];
         char a;
         int soma = 0;
    
         scanf("%c",&a);
    
         int d=5,e=6,f=0;
         int i,j;
    
         for(i = 0; i<12; i++){
             for(j = 0; j<12; j++){
                 scanf("%d",&M[i][j]);
                 if((d<=i<=e) && (j==f) && (i>=7)){
                     soma = soma + M[i][j];
                 }
             }
             if(i>=7){
                 f++;
                 d--;
                 e++;
             }
         }
    
         int retorno = (strcmp(a,"S"));
    
         if( retorno == 0){
            printf("%d",soma);    
         }else{
             printf("%.1f",soma/30.0);
         }
    
        return 0;
    }

    Estou tendo erro de compilação

  • Gerson Groth replied 6 years ago

    O teu for dentro do while vai sempre até i ser menor que COLUNA. Muda para até i ser menor que (COLUNA - limite2) que passa ;)

    for (i=limite2;i<(COLUNA - limite2);i++){
  • Francielle Marques replied 6 years ago

    Qual é o erro? Obrigada, desde já.

    Dúvida respondida. Código removido
  • [UEFS] Marcelo Bião replied 7 years ago

    Tente inicializar a variavel "s" com 0 para quando vc a incrementa-la o lixo de memória não altere o resultado. no local do if "if(i<5)". essa ferificação deveria ser feita para i<=5. Tente mudar isso pra ver se o código passa.

  • Gerson Groth replied 7 years ago

    Exato. São 144 valores de entrada. O que vc tem que calcular é somente a área informada em verde.

  • Patrick Junior De Bastiani replied 7 years ago

    Então a entrada vai completar todas as posições da matriz, não somente a parte verde.

  • Gerson Groth replied 7 years ago

    Você tem que ler os valores da matriz (12 linhas e 12 colunas). Portanto, vão existir valores na parte correspondente à área verde da matriz. Ai é só calcular a Soma ou Média, dependendo do caractere que for lido na primeira linha, correspondente aquela área verde.

  • Patrick Junior De Bastiani replied 7 years ago

    Tenho que considerar que a parte da matriz já esta completada? Ou seja, só pego a parte verde e faço as operações, tendo ou não valores nas posições?