TOPIC

Wrong Answer 20%, por que?

Matteus Gutëmberg asked 8 months ago

#include <stdio.h>
#include <stdlib.h>

int main()
{
    //poderia por (N de linhas/2) - 1 pra ser ate onde a linha vai
    float matrizQ[12][12];
    int caractere;
    scanf("%d", caractere);
    caractere = getchar();//aprender a usar
    switch(caractere){
    case 'S':
        for(int i = 0; i < 12; i++){
            for(int j = 0; j < 12; j++){
                scanf("%f", &matrizQ[i][j]);
            }
        }
        float soma = 0, contColCres = 1, contColDecres = 10;
        for(int i = 0; i < 5; i++){
            for(int j = contColCres; j <= contColDecres; j++){
                soma = soma + matrizQ[i][j];
            }
            contColCres++;
            contColDecres--;
        }
        printf("%.1f\n", soma);
        break;

    case 'M':
         for(int i = 0; i < 12; i++){
            for(int j = 0; j < 12; j++){
                scanf("%f", &matrizQ[i][j]);
            }
        }
        float soma1 = 0, media1 = 0, contElementos = 0, contColCres1 = 1, contColDecres1 = 10;
        for(int i = 0; i < 5; i++){
            for(int j = contColCres1; j <= contColDecres1; j++){
                soma1 = soma1 + matrizQ[i][j];
                contElementos++;
            }
            contColCres1++;
            contColDecres1--;
        }
        media1 = soma1/contElementos;
        printf("%.1f\n", media1);
        break;
    }

    return 0;
}

Remember not post solutions. Your post may be reviewed by our moderators.

  • [C]-Guiffrey-Gian-UTN FRSF 2020-AEDD replied 5 months ago

    Amigo, me pasa lo mismo, intente en uDebug, que las Output me dan bien, pero el programa me sigue dando 20%, los demas ejercicios de este mismo pero en los otros "cuadrantes" ya me dieron pero sigue sin damr este
  • Matteus Gutëmberg replied 8 months ago

    Caraca mano, valeeeeu!!!

  • Victor Hugo replied 8 months ago

    Cara, algumas coisas, vi que você está usando ambos getchar e scanf para ler o caracter, tem que escolher um KK, talvez você tenha tido problemas para ler um caracater com o scanf, pois logo depois do caracter, vem um número, isso quase sempre dá problema por causa do '\n' que fica no buffer de leituram, para resolver isso, você deve fazer scanf("%c%*c, &caracter);, esse '%*c'indica que eu devo descartar qualquer caracter que vier após o caracter lido. Você deve, também, declarar caracter como o tipo char, só pra ficar certinho :). Agora porque está dando 20%? O enunciado da questão 'sugere' que os valores vão ser pontos flutuantes de dupla precisão, ou seja, variáveis do tipo double, então, para resolver esse problema, todas sas variáveis do tipo float que você declarou, você deve mudar para double e consequentemente, em todos os scanfs e prints em que você está lendo float com "%f", você deve mudar para '%lf'. A própria matriz deve ser declarada como double também.`