1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Programaçao em c

Discussão em 'Programação' iniciada por pedrodocoves, 2 de Dezembro de 2018. (Respostas: 2; Visualizações: 203)

  1. Alguem me ajuda a perceber o eroo deste código:

    nao efetua o switch

    #include<stdio.h>

    int main()
    {
    int matriz[7][3];
    float d,t,dia;
    for(d = 0 ;d <= 7 ; d++)
    for(t = 0 ; t <=3 ; t++)
    {
    printf("Insira a %f temperatura no %fº dia da semana:", d+1, t+1);
    scanf("%d", &matriz[d][t]);
    }
    }

    switch(dia){

    case 's': printf("segunda estiveram %f ºC",matriz[1][1]);
    break;
    case 't':printf("terça estiveram %f ºC", matriz[2][1])
    }
    }
     
    Última edição: 2 de Dezembro de 2018
  2. dagas46

    dagas46 Power Member

    a variável dia não tem qualquer valor atribuído quando a instrução a executar é o switch.

    não tens nenhum segmentation fault ao executar esse código?
     
  3. filipedaniel

    filipedaniel Power Member

    Olá tens vários problemas no teu código.

    Faltam chavetas, os tipos estão definidos de forma incorreta e está difícil perceber o que o código faz. No entanto refactorei um bocado o teu código para correr, agora altera de acordo com o que pretendes.

    Código:
    #include<stdio.h>
    
    #define TOTAL_DIAS 7
    #define TOTAL_TEMP 3
    
    int main()
    {
        float matriz[7][3];
       
    
        for (int dia = 0; dia < TOTAL_DIAS; dia++) {
            for (int temp = 0; temp < TOTAL_TEMP; temp++) {
                printf("Insira a %dª temperatura %dº dia da semana\n", temp + 1, dia + 1);
                scanf("%f", &matriz[dia][temp]);
            }
        }
    
        for (int dia = 0; dia < TOTAL_DIAS; dia++) {
            for (int temp = 0; temp < TOTAL_TEMP; temp++) {
                switch (dia) {
                    case 0:
                        printf("segunda estiveram %.2f ºC\n", matriz[dia][temp]);
                    break;
                    case 1:
                        printf("terça estiveram %.2f ºC\n", matriz[dia][temp]);
                    break;
                }
            }
        }
    }
    
     

Partilhar esta Página