Ir ao conteúdo

Posts recomendados

Postado

Olá! Estou tentando fazer o seguinte exercício -  linguagem C, mas estou com sérios problemas para entender listas...

Faça um programa que receba a temperatura média de cada mês do ano e armazene-as em uma lista. Após isto, calcule a média anual das temperaturas e mostre todas as temperaturas acima da média anual, e em que mês elas ocorreram (mostrar o mês por extenso: 1 - Janeiro, 2 - Fevereiro, ... ).

Comecei dessa maneira, mas não sei se estou no caminho certo, alguém pode ajudar?

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

struct temperatura {

float temp;
char mes[9];
}; 

int main () {

float temp;
char mes[9][12]={{"Janeiro"}, {"Fevereiro"}, {"Marco"}, {"Abril"}, {"Maio"}, {"Junho"}, {"Julho"}, {"Agosto"}, {"Setembro"}, {"Outubro"}, {"Novembro"}, {"Dezembro"}};
struct temperatura t[12];
int i;
printf("Digite a temperatura media: ");
for (i=1;i<=12;i++) {
scanf("%f",&t.temp);
}    
} 

 

Postado

Não sei se com "tenho problemas sérios para entender listas" se referia a listas lineares, eu escrevi o algoritmo presumindo que NÃO.

 

#include <stdio.h>;

void getMes(int mes){
    switch(mes){
    case 0:
        printf("Janeiro = ");
        break;
    case 1:
        printf("Fevereiro = ");
        break;
    case 2:
        printf("Marco = ");
        break;
    case 3:
        printf("Abril = ");
        break;
    case 4:
        printf("Maio = ");
        break;
    case 5:
        printf("Junho = ");
        break;
    case 6:
        printf("Julho = ");
        break;
    case 7:
        printf("Agosto = ");
        break;
    case 8:
        printf("Setembro = ");
        break;
    case 9:
        printf("Outubro = ");
        break;
    case 10:
        printf("Novembro = ");
        break;
    default:
        printf("Dezembro = ");
    }
}

int main(){
    float ListaMeses[12];
    float somaMeses = 0;
    int x;

    for(x=0;x<12;x++){
        getMes(x);
        scanf("%f%*c", &ListaMeses[x]);
    }

    for(x=0;x<12;x++)
        somaMeses += ListaMeses[x];
    
    somaMeses = somaMeses/12;

    printf("\nMeses com temperaturas acima da media (%.2f graus):\n", somaMeses);
    for(x=0;x<12;x++){
        if(ListaMeses[x] > somaMeses){
            printf("%d - ", x);
            getMes(x);
            printf("%.2f graus\n", ListaMeses[x]);
        }
    }
}

Não vi necessidade de usar uma struct, mas essa é a minha visão. Ideal seria tentar refazer o código ao seu modo.

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!